diff --git a/website/locales/zh-CN/messages.po b/website/locales/zh-CN/messages.po
index 16617ccdf..a6f641dfa 100644
--- a/website/locales/zh-CN/messages.po
+++ b/website/locales/zh-CN/messages.po
@@ -36,7 +36,7 @@ msgstr "逆向工程的思考。"
#, python-brace-format
msgctxt "page:blog/index.html"
msgid "Game reconstruction{ph0}Essay"
-msgstr "游戏重建{ph0}论文"
+msgstr "游戏重建{ph0}随笔"
#: website/public/blog/index.html:219
msgctxt "page:blog/index.html"
@@ -48,7 +48,7 @@ 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教我关于编程助手,验证和知识,跨项目的化合物。"
+msgstr "手工逆向,以及重建TH08,TH095和TH04的经历,让我理解了编程助手、验证,以及如何在项目之间积累知识。"
#: website/public/blog/index.html:210 website/public/blog/index.html:225
msgctxt "page:blog/index.html"
@@ -58,7 +58,7 @@ msgstr "阅读文章"
#: website/public/blog/index.html:228
msgctxt "page:blog/index.html"
msgid "By N0zoM1z0 · 10 October 2026"
-msgstr "通过N0zoM1z0*10十月2026"
+msgstr "作者 N0zoM1z0 · 2026 年 10 月 10 日"
#. {ph0}:
#. {ph1}:
@@ -133,7 +133,7 @@ msgctxt "shared"
msgid ""
"REA — Find out how software works. Reverse engineering with your coding "
"agent."
-msgstr "REA-了解软件的工作原理。 逆向工程与你的编程助手."
+msgstr "REA — 了解软件如何工作。和你的编程助手一起做逆向工程。"
#: website/public/blog/index.html:110
#: website/public/blog/reverse-engineering-models/index.html:110
@@ -628,7 +628,7 @@ msgid ""
" explanation and tests it; a mismatch gives it something specific to "
"investigate."
msgstr ""
-"这让对照检查成为工作的核心。我把这些基准称为{ph0}校验基准(oracle){ph1}。代码对比可以检查重建函数是否复现原始指令;运行时检查可以确认已走过的路径是否到达预期状态。助手提出解释,再验证它。发现不匹配,就有了具体的调查方向。"
+"这让对照检查成为整个工作的核心。我把这些基准称为{ph0}校验基准{ph1}。代码对比可以判断重建的函数是否复现了原始指令;运行时检查可以判断实际走过的路径是否到达了预期状态。编程助手提出一种解释并加以验证;一旦对不上,它就有了具体的调查方向。"
#: website/public/blog/touhou-reconstruction/index.html:456
msgctxt "page:blog/touhou-reconstruction/index.html"
@@ -1376,7 +1376,7 @@ msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"I now look at an unfamiliar program and ask: {ph0}what access, feedback and "
"accumulated knowledge would let an agent work on this reliably?{ph1}"
-msgstr "现在看到一个陌生程序,我会问:{ph0}怎样的工具访问、反馈和知识积累,能让助手可靠地推进这个项目?{ph1}"
+msgstr "现在看到一个陌生的程序,我会问:{ph0}要提供什么样的访问途径、反馈和知识积累,编程助手才能可靠地处理它?{ph1}"
#: website/public/blog/touhou-reconstruction/index.html:937
msgctxt "page:blog/touhou-reconstruction/index.html"
@@ -1384,7 +1384,7 @@ 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 "这个问题让我考虑以前会放弃的项目。每个项目都能改善下一个项目的工作方式。我想继续探索,这能带我们走多远。"
+msgstr "这个问题让我重新考虑那些原本会搁置的项目。每一个都能改善我们处理下一个项目的方式。我想继续探索这条路能把我们带多远。"
#: website/public/blog/touhou-reconstruction/index.html:945
msgctxt "page:blog/touhou-reconstruction/index.html"
@@ -1637,8 +1637,8 @@ msgid ""
"speed. {ph0}REA returned the running script;{ph1} we used its rule to build "
"this mini-game with {ph2}adjustable speed.{ph3}"
msgstr ""
-"要重新创建游戏的加速,首先找到控制其速度的规则。 {ph0} REA返回运行脚本;{ph1} 我们用它的规则来构建这个迷你游戏。 "
-"{ph2}速度可调。{ph3}"
+"要复现游戏的加速效果,先找到控制速度的规则。{ph0}REA 返回"
+"了正在运行的脚本;{ph1}我们用它的规则做了这个{ph2}速度可调{ph3}的小游戏。"
#: website/public/examples/dino-lab/index.html:212
#: website/public/examples/dino-lab/index.html:211
@@ -1681,7 +1681,7 @@ msgstr "{ph0}试试分析{ph1}"
#: website/public/examples/dino-lab/index.html:222
msgctxt "page:examples/dino-lab/index.html"
msgid "Play and change the speed"
-msgstr "播放和改变速度"
+msgstr "游玩并调整速度"
#: website/public/examples/dino-lab/index.html:223
msgctxt "page:examples/dino-lab/index.html"
@@ -1689,7 +1689,7 @@ msgid ""
"Press Play, then jump over the cactus. Move the speed slider to try a slower"
" or faster game; it switches to a fixed speed. Select the recovered rule to "
"start at 6 and gradually accelerate again."
-msgstr "按播放,然后跳过仙人掌。 移动速度滑块尝试更慢或更快的游戏;它切换到固定的速度。 选择恢复的规则从6开始,然后再次逐渐加速。"
+msgstr "点击「开始」,然后跳过仙人掌。拖动速度滑块可以试玩更慢或更快的游戏;也可以切换为固定速度。选择还原后的规则,从 6 开始再次逐步加速。"
#: website/public/examples/dino-lab/index.html:229
msgctxt "page:examples/dino-lab/index.html"
@@ -1729,19 +1729,19 @@ msgstr "原始规则:从6开始,然后向13增加。"
#: website/public/examples/dino-lab/index.html:285
msgctxt "page:examples/dino-lab/index.html"
msgid "Move the slider to set your own speed. Space or Jump clears a cactus."
-msgstr "移动滑块来设置自己的速度。 空间或跳跃清除仙人掌。"
+msgstr "移动滑块设置速度。按空格键或点「跳跃」即可越过仙人掌。"
#: website/public/examples/dino-lab/index.html:290
msgctxt "page:examples/dino-lab/index.html"
msgid ""
"Enable JavaScript to play the reconstruction. The code and explanation above"
" remain readable."
-msgstr "启用JavaScript播放重建。 上面的代码和解释仍然是可读的。"
+msgstr "启用 JavaScript 即可游玩重建版。上方的代码和说明仍可阅读。"
#: website/public/examples/dino-lab/index.html:298
msgctxt "page:examples/dino-lab/index.html"
msgid "Read the script REA returned"
-msgstr "读取脚本REA返回"
+msgstr "阅读 REA 返回的脚本"
#. {ph0}:
#. {ph1}:
@@ -1754,7 +1754,7 @@ msgid ""
" returned the loaded {ph2}, including this branch in the game’s update "
"function:"
msgstr ""
-"我们检查过 {ph0}wayou的Chromium派生浏览器版{ph1} 与REA。 它返回加载 {ph2},将此分支包含在游戏的更新功能中:"
+"我们用 REA 检查了 {ph0}wayou 基于 Chromium 的浏览器版本{ph1}。它返回了已加载的 {ph2},其中包含游戏更新函数里的这个分支:"
#. {ph0}: SPEED: 6
#. {ph1}: ACCELERATION: 0.001
@@ -1765,7 +1765,7 @@ msgctxt "page:examples/dino-lab/index.html"
msgid ""
"The settings are {ph0}, {ph1} and {ph2}. The game runs this branch on an "
"update without a collision."
-msgstr "设置是 {ph0}, {ph1} 和 {ph2}. 游戏在没有碰撞的更新上运行此分支。"
+msgstr "设置为 {ph0}、{ph1} 和 {ph2}。在没有发生碰撞的那次更新中,游戏会执行这个分支。"
#: website/public/examples/dino-lab/index.html:320
msgctxt "page:examples/dino-lab/index.html"
@@ -1786,8 +1786,8 @@ msgid ""
"collision checks are new code for this teaching game; its simulation "
"advances at 60 updates per second."
msgstr ""
-"迷你游戏使用此功能进行自动加速。 移动滑块提供了一个固定的速度代替. "
-"绘图,跳跃物理和矩形碰撞检查是这个教学游戏的新代码;它的模拟以每秒60次更新的速度前进。"
+"这个迷你游戏用这个函数实现自动加速。拖动滑块则改为固定速度。绘"
+"图、跳跃物理和矩形碰撞检测是这个教学游戏中新写的代码;它的模拟以每秒 60 次更新的速度推进。"
#. {ph0}:
#. {ph1}:
@@ -1810,17 +1810,17 @@ 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 "我们称原来的游戏的更新功能与障碍和自动调度禁用。 将这些记录的速度与恢复规则的重播进行比较。"
+msgstr "我们在禁用障碍物和自动调度的情况下调用了原游戏的更新函数。把这些记录下来的速度与重放还原出的规则所得的结果做个比较。"
#: website/public/examples/dino-lab/index.html:363
msgctxt "page:examples/dino-lab/index.html"
msgid "Updates"
-msgstr "更新资料"
+msgstr "更新次数"
#: website/public/examples/dino-lab/index.html:364
msgctxt "page:examples/dino-lab/index.html"
msgid "Original game"
-msgstr "原创游戏"
+msgstr "原版游戏"
#: website/public/examples/dino-lab/index.html:365
msgctxt "page:examples/dino-lab/index.html"
@@ -1837,7 +1837,7 @@ 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的速度。"
+msgstr "数值保留三位小数。该分支在加法前先做判断,因此最终的增量可能让速度略高于 13。"
#: website/public/examples/dino-lab/index.html:401
msgctxt "page:examples/dino-lab/index.html"
@@ -1850,7 +1850,7 @@ msgstr "自己试试分析"
#, python-brace-format
msgctxt "page:examples/dino-lab/index.html"
msgid "{ph0}Set up REA{ph1} with your coding agent."
-msgstr "{ph0}设立 REA{ph1} 用你的编程助手。"
+msgstr "{ph0}配置 REA{ph1},配合你的编程助手使用。"
#. {ph0}:
#. {ph1}:
@@ -1936,7 +1936,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,重建它,然后改变速度和发挥。"
+msgstr "用 REA 读出恐龙游戏的速度规则,重建它,然后修改速度并试玩。"
#: website/public/examples/dino-lab/index.html:220
msgctxt "page:examples/dino-lab/index.html"
@@ -1948,7 +1948,7 @@ msgctxt "page:examples/dino-lab/index.html"
msgid ""
"Dinosaur mini-game. Use the Jump button or press Space while the game is "
"focused."
-msgstr "恐龙迷你游戏。 使用跳跃按钮或按空格键,而游戏是重点。"
+msgstr "恐龙迷你游戏。游戏处于焦点状态时,点击「跳跃」按钮或按空格键。"
#: website/public/examples/dino-lab/index.html:326
msgctxt "page:examples/dino-lab/index.html"
@@ -2804,7 +2804,7 @@ msgctxt "page:first-investigation/index.html"
msgid ""
"{ph0}How DX-Ball calculates sound panning{ph1}{ph2}Read the original "
"instructions and the reconstruction’s checks.{ph3}"
-msgstr "{ph0}DX-Ball 如何计算声音左右位置{ph1}{ph2}查看原始指令,以及重建结果的验证。{ph3}"
+msgstr "{ph0}DX-Ball 如何计算声像定位{ph1}{ph2}阅读原始指令,以及重建结果的校验。{ph3}"
#. {ph0}:
#. {ph1}:
@@ -3402,7 +3402,7 @@ msgstr "复制Linux的fnm安装命令"
#: website/public/get-started/index.html:383
msgctxt "page:get-started/index.html"
msgid "Copy Node.js 24 commands for Linux"
-msgstr "复制 Node.js 24命令 Linux"
+msgstr "复制 Linux 的 Node.js 24 命令"
#: website/public/get-started/index.html:210
#: website/public/get-started/index.html:209
@@ -3467,7 +3467,7 @@ 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。"
+msgstr "用一个小型的浏览器应用,把一个操作、对应的网络请求,以及生成下载文件的 JavaScript 联系起来。"
#: website/public/guides/browser/index.html:209
msgctxt "page:guides/browser/index.html"
@@ -3496,7 +3496,7 @@ msgstr "{ph0}打开浏览器{ph1}"
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid "{ph0}Ask your agent{ph1}"
-msgstr "{ph0}问问你的编程助手{ph1}"
+msgstr "{ph0}向编程助手提问{ph1}"
#. {ph0}:
#. {ph1}:
@@ -3504,7 +3504,7 @@ msgstr "{ph0}问问你的编程助手{ph1}"
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid "{ph0}Capture from CLI{ph1}"
-msgstr "{ph0}从CLI捕获 {ph1}"
+msgstr "{ph0}使用 CLI 捕获{ph1}"
#. {ph0}:
#. {ph1}:
@@ -3512,7 +3512,7 @@ msgstr "{ph0}从CLI捕获 {ph1}"
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid "{ph0}Read the request and script{ph1}"
-msgstr "{ph0}阅读请求和脚本{ph1}"
+msgstr "{ph0}读取请求和脚本{ph1}"
#: website/public/guides/browser/index.html:220
msgctxt "page:guides/browser/index.html"
@@ -3566,7 +3566,7 @@ msgctxt "page:guides/browser/index.html"
msgid ""
"{ph0}02 · REA{ph1}{ph2}Record the request{ph3}{ph4}Capture the request URL, "
"response status and JSON structure from the selected page.{ph5}"
-msgstr "{ph0}02*REA {ph1}{ph2}记录请求{ph3}{ph4}从所选页面捕获请求URL,响应状态和JSON结构。{ph5}"
+msgstr "{ph0}02 · REA{ph1}{ph2}记录请求{ph3}{ph4}从所选页面捕获请求 URL、响应状态和 JSON 结构。{ph5}"
#. {ph0}:
#. {ph1}:
@@ -3588,12 +3588,12 @@ msgstr ""
#: website/public/guides/browser/index.html:260
msgctxt "page:guides/browser/index.html"
msgid "Start the capture before clicking Export notes."
-msgstr "在单击导出注释之前开始捕获。"
+msgstr "在点击 Export notes 之前开始捕获。"
#: website/public/guides/browser/index.html:266
msgctxt "page:guides/browser/index.html"
msgid "Open Chrome with remote debugging"
-msgstr "使用远程调试打开Chrome"
+msgstr "以远程调试方式启动 Chrome"
#: website/public/guides/browser/index.html:267
msgctxt "page:guides/browser/index.html"
@@ -3633,7 +3633,7 @@ msgstr "REA连接到这个现有的浏览器。 你可以控制页面,执行
#: website/public/guides/browser/index.html:299
msgctxt "page:guides/browser/index.html"
msgid "Ask your agent to watch one action"
-msgstr "让你的编程助手看一个动作"
+msgstr "让编程助手观察一个操作"
#. {ph0}:
#. {ph1}:
@@ -3680,7 +3680,7 @@ 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 "你的编程助手发现页面目标,启动观察窗口,并读取生成的证据。 然后,它可以检查导出后面的脚本。"
+msgstr "你的编程助手会发现页面目标,启动观察窗口并读取采集到的证据。随后它可以查看导出功能背后的脚本。"
#: website/public/guides/browser/index.html:335
msgctxt "page:guides/browser/index.html"
@@ -3727,7 +3727,7 @@ msgid ""
"The captured result includes the selected page, network activity during that"
" window, and the shape of the JSON response. Earlier requests are outside "
"this capture."
-msgstr "捕获的结果包括所选页面、该窗口期间的网络活动以及JSON响应的形状。 较早的请求在此捕获之外。"
+msgstr "捕获的结果包括所选页面、该窗口期间的网络活动以及 JSON 响应的结构。更早的请求不在本次捕获范围内。"
#: website/public/guides/browser/index.html:386
msgctxt "page:guides/browser/index.html"
@@ -3747,7 +3747,7 @@ msgstr "捕获的事实"
#: website/public/guides/browser/index.html:395
msgctxt "page:guides/browser/index.html"
msgid "Value"
-msgstr "数值"
+msgstr "值"
#: website/public/guides/browser/index.html:400
msgctxt "page:guides/browser/index.html"
@@ -3757,7 +3757,7 @@ msgstr "请求"
#: website/public/guides/browser/index.html:404
msgctxt "page:guides/browser/index.html"
msgid "Response"
-msgstr "回应"
+msgstr "响应"
#: website/public/guides/browser/index.html:408
msgctxt "page:guides/browser/index.html"
@@ -3783,7 +3783,7 @@ msgstr "响应结构"
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid "{ph0} with {ph1} and {ph2} fields"
-msgstr "{ph0} 与 {ph1} 和 {ph2} 字段"
+msgstr "{ph0},包含 {ph1} 和 {ph2} 字段"
#: website/public/guides/browser/index.html:423
msgctxt "page:guides/browser/index.html"
@@ -3807,7 +3807,7 @@ msgid ""
"The download is constructed in the page using the JSON response. The CSV "
"formatting step comes from the script; the network capture establishes that "
"this click requested {ph0}."
-msgstr "下载是使用JSON响应在页面中构建的。 CSV格式化步骤来自脚本;网络捕获建立此单击请求 {ph0}."
+msgstr "下载文件是在页面中用 JSON 响应构建的。CSV 格式化这一步来自脚本;网络捕获可以证明这次点击请求了 {ph0}。"
#. {ph0}: notes.json
#: website/public/guides/browser/index.html:473
@@ -3816,7 +3816,7 @@ msgctxt "page:guides/browser/index.html"
msgid ""
"Find the script that requests {ph0}. How does it escape titles containing "
"commas or quotation marks?"
-msgstr "查找请求的脚本 {ph0}. 它如何转义包含逗号或引号的标题?"
+msgstr "找出请求 {ph0} 的脚本。它如何转义包含逗号或引号的标题?"
#. {ph0}:
#. {ph1}:
@@ -3826,7 +3826,7 @@ msgctxt "page:guides/browser/index.html"
msgid ""
"For an installed JavaScript or Electron app, continue with the "
"{ph0}application workflow{ph1} to follow files and process boundaries."
-msgstr "对于已安装的JavaScript或Electron应用程序,请继续 {ph0}应用程序工作流程{ph1} 要遵循文件和进程边界。"
+msgstr "对于已安装的 JavaScript 或 Electron 应用,请继续使用{ph0}应用分析流程{ph1},以追踪文件与进程边界。"
#: website/public/guides/browser/index.html:6
msgctxt "page:guides/browser/index.html"
@@ -3838,7 +3838,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:选择浏览器页面,捕获单击,检查请求并遵循导出脚本。"
+msgstr "用 REA 观察一次笔记导出:选择浏览器页面,捕获一次点击,检查请求并追踪导出脚本。"
#: website/public/guides/browser/index.html:208
msgctxt "page:guides/browser/index.html"
@@ -3903,7 +3903,7 @@ 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导出或浏览器请求。 每个指南包括提示,代码和结果。"
+msgstr "分析原生函数、Electron 导出流程或浏览器请求。每个指南都包含提示词、代码和结果。"
#: website/public/guides/index.html:206
msgctxt "page:guides/index.html"
@@ -3918,7 +3918,7 @@ msgstr "设置REA"
#: website/public/guides/index.html:209
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:210
msgctxt "page:guides/index.html"
@@ -3933,7 +3933,7 @@ msgstr "原生二进制"
#: website/public/guides/index.html:216
msgctxt "page:guides/index.html"
msgid "Recover a sound-pan calculation"
-msgstr "恢复左/右声音位置的计算"
+msgstr "还原声像定位的计算"
#: website/public/guides/index.html:217
msgctxt "page:guides/index.html"
@@ -3962,7 +3962,7 @@ 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通道和文件编写器。"
+msgstr "一个小 Notes 应用把同一个功能分散在渲染进程、预加载脚本和主进程三处。用 REA 把 API、IPC 通道和写文件的代码关联起来。"
#: website/public/guides/index.html:244
msgctxt "page:guides/index.html"
@@ -3975,7 +3975,7 @@ msgstr "JavaScript&Electron指南"
#, 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}."
+msgstr "对于更大的打包应用,请看{ph0}Notion 的剪贴板衔接逻辑{ph1}。"
#: website/public/guides/index.html:254
msgctxt "page:guides/index.html"
@@ -3992,7 +3992,7 @@ 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 "打开工作笔记示例,捕获导出请求并找到将其响应转换为下载的代码。"
+msgstr "打开一个可以正常运行的 Notes 示例,捕获导出请求,并找到把响应转为下载文件的代码。"
#: website/public/guides/index.html:266
msgctxt "page:guides/index.html"
@@ -4009,7 +4009,7 @@ msgctxt "page:guides/index.html"
msgid ""
"Learn REA through short worked examples: a native calculation, an Electron "
"CSV export and a browser request."
-msgstr "通过简短的示例学习REA:本机计算,Electron CSV导出和浏览器请求。"
+msgstr "通过简短示例学习 REA:一次原生计算、Electron CSV 导出和浏览器请求。"
#: website/public/guides/index.html:286
msgctxt "page:guides/index.html"
@@ -4036,14 +4036,14 @@ msgstr "{ph0}首页{ph1} / {ph2}指南{ph3} / JavaScript & Electron"
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid "Trace an Electron{ph0}CSV export."
-msgstr "追踪安 Electron{ph0}CSV 导出。"
+msgstr "追踪 Electron 应用的{ph0}CSV 导出流程。"
#: website/public/guides/javascript/index.html:202
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文件编写器。"
+msgstr "沿着一次按钮点击,从页面 API 出发,经过 Electron IPC,直到 CSV 文件写入函数。"
#: website/public/guides/javascript/index.html:209
msgctxt "page:guides/javascript/index.html"
@@ -4111,7 +4111,7 @@ msgstr ""
#: website/public/guides/javascript/index.html:228
msgctxt "page:guides/javascript/index.html"
msgid "The CSV export across Electron processes"
-msgstr "该 CSV 跨导出 Electron 过程"
+msgstr "跨 Electron 进程的 CSV 导出"
#. {ph0}:
#. {ph1}:
@@ -4128,7 +4128,7 @@ msgctxt "page:guides/javascript/index.html"
msgid ""
"{ph0}Renderer → preload{ph1}{ph2}{ph3}{ph4}{ph5}{ph6} calls the API exposed "
"by {ph7}.{ph8}"
-msgstr "{ph0}渲染器→预加载{ph1}{ph2}{ph3}{ph4}{ph5}{ph6} 调用由 {ph7}.{ph8}"
+msgstr "{ph0}渲染进程 → preload{ph1}{ph2}{ph3}{ph4}{ph5}{ph6} 调用 {ph7} 暴露的 API。{ph8}"
#. {ph0}:
#. {ph1}:
@@ -4143,7 +4143,7 @@ msgctxt "page:guides/javascript/index.html"
msgid ""
"{ph0}Between processes{ph1}{ph2}{ph3}{ph4}{ph5}The preload invokes an IPC "
"channel: a named message to the main process.{ph6}"
-msgstr "{ph0}进程之间{ph1}{ph2}{ph3}{ph4}{ph5}预加载调用IPC通道:主进程的命名消息。{ph6}"
+msgstr "{ph0}进程之间{ph1}{ph2}{ph3}{ph4}{ph5}preload 调用一条 IPC 通道——即发往主进程的一条具名消息。{ph6}"
#. {ph0}:
#. {ph1}:
@@ -4167,7 +4167,7 @@ msgstr "{ph0}主进程{ph1}{ph2}导出处理函数{ph3}{ph4}{ph5}处理这个通
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid "{ph0} formats the notes → {ph1} writes {ph2}."
-msgstr "{ph0} 格式化注释→ {ph1} 写道 {ph2}."
+msgstr "{ph0} 格式化笔记 → {ph1} 写入 {ph2}。"
#: website/public/guides/javascript/index.html:261
msgctxt "page:guides/javascript/index.html"
@@ -4175,7 +4175,7 @@ msgid ""
"REA matches the literal IPC call to its handler and identifies the exposed "
"API. The path is inferred from code; a runtime capture can check what "
"executes."
-msgstr "REA将字面IPC调用与其处理程序相匹配,并标识公开的API。 路径是从代码中推断出来的;运行时捕获可以检查执行的内容。"
+msgstr "REA 将字面 IPC 调用与处理函数配对,并识别出被暴露的 API。调用路径由代码推断;运行时捕获可以检查实际执行的内容。"
#: website/public/guides/javascript/index.html:269
msgctxt "page:guides/javascript/index.html"
@@ -4190,7 +4190,7 @@ msgctxt "page:guides/javascript/index.html"
msgid ""
"{ph0}Connect your agent to REA{ph1} and give it the app directory or ASAR "
"file:"
-msgstr "{ph0}将你的编程助手连接到 REA{ph1} 并给它的应用程序目录或 ASAR 档案:"
+msgstr "{ph0}将你的编程助手连接到 REA{ph1},并把应用目录或 ASAR 文件路径给它:"
#. {ph0}:
#. {ph1}:
@@ -4241,7 +4241,7 @@ 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读取应用程序文件并构建入口点,模块和流程边界的映射。 你的编程助手使用该映射将调查范围缩小到导出功能。"
+msgstr "REA 读取应用文件,构建入口点、模块和进程边界的映射。你的编程助手用这张图把调查范围收窄到导出功能。"
#: website/public/guides/javascript/index.html:308
msgctxt "page:guides/javascript/index.html"
@@ -4328,7 +4328,7 @@ msgid ""
"agent can follow a literal string, API name or IPC channel with REA's "
"feature tracing tools."
msgstr ""
-"对于你自己的应用程序,请对其目录或ASARpath使用相同的命令。 编程助手可以使用REA的功能跟踪工具跟随文字字符串,API名称或IPC通道。"
+"对于你自己的应用,用相同的命令加上它的目录或 ASAR 路径。编程助手可以用 REA 的功能追踪工具追踪字面字符串、API 名称或 IPC 通道。"
#: website/public/guides/javascript/index.html:454
msgctxt "page:guides/javascript/index.html"
@@ -4374,7 +4374,7 @@ msgctxt "page:guides/javascript/index.html"
msgid ""
"{ph0}Observe a browser export{ph1}{ph2}Capture a real click and see which "
"request it makes.{ph3}"
-msgstr "{ph0}观察浏览器导出{ph1}{ph2}捕获一个真正的点击,看看它提出了哪个请求。{ph3}"
+msgstr "{ph0}观察浏览器导出{ph1}{ph2}捕获一次真实点击,看看它发起了哪个请求。{ph3}"
#. {ph0}:
#. {ph1}:
@@ -4386,7 +4386,7 @@ msgctxt "page:guides/javascript/index.html"
msgid ""
"{ph0}Follow a native function{ph1}{ph2}Continue into a binary when a feature"
" depends on native code.{ph3}"
-msgstr "{ph0}遵循原生函数{ph1}{ph2}当特性依赖于原生代码时,继续进入二进制文件.{ph3}"
+msgstr "{ph0}追踪一个原生函数{ph1}{ph2}当某项功能依赖原生代码时,继续进入二进制文件。{ph3}"
#: website/public/guides/javascript/index.html:6
msgctxt "page:guides/javascript/index.html"
@@ -4399,7 +4399,7 @@ 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的渲染器API,预加载和IPC处理程序跟踪Notes CSV导出。 包括可下载的示例文件和经过验证的分析结果。"
+msgstr "用 REA 沿着渲染器 API、preload 和 IPC 处理函数追踪 Notes 的 CSV 导出。包含可下载的示例文件和经过验证的分析结果。"
#: website/public/guides/javascript/index.html:208
msgctxt "page:guides/javascript/index.html"
@@ -4503,14 +4503,14 @@ msgstr "{ph0}使用你自己的二进制文件{ph1}"
#: website/public/guides/native/index.html:219
msgctxt "page:guides/native/index.html"
msgid "Calculate left/right sound panning"
-msgstr "计算左/右立体声声音定位"
+msgstr "计算左右声像"
#: website/public/guides/native/index.html:220
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中,砖击提供水平屏幕位置。 声音代码将其转换为左/右平移值。"
+msgstr "在 DX-Ball 中,砖块碰撞提供一个水平屏幕坐标,声音代码把它转换为左右声像值。"
#. {ph0}: 0x00406400
#. {ph1}: __ftol()
@@ -4521,12 +4521,12 @@ msgid ""
"The starting function, {ph0}, has a short decompiler result: a call to "
"{ph1}. REA also returns its instructions and callers, which give the agent a"
" way to investigate the missing arithmetic."
-msgstr "启动函数, {ph0},有一个简短的反编译器结果:调用 {ph1}. REA 还返回其指令和调用者,这给编程助手一种方法来调查丢失的算术。"
+msgstr "起始函数 {ph0} 的反编译结果很短:一次对 {ph1} 的调用。REA 还会返回它的指令和调用者,让编程助手得以调查缺失的算术运算。"
#: website/public/guides/native/index.html:231
msgctxt "page:guides/native/index.html"
msgid "New to these terms?"
-msgstr "新的这些条款?"
+msgstr "这些术语还不熟悉?"
#. {ph0}:
#. {ph1}:
@@ -4579,7 +4579,7 @@ msgctxt "page:guides/native/index.html"
msgid ""
"{ph0}Constants:{ph1} fixed numbers stored in the program, read as raw bytes "
"and decoded."
-msgstr "{ph0}常量:{ph1} 固定数字存储在程序中,读取为原始字节和解码。"
+msgstr "{ph0}常量:{ph1} 存储在程序中的固定数值,以原始字节读取并解码。"
#: website/public/guides/native/index.html:258
msgctxt "page:guides/native/index.html"
@@ -4676,8 +4676,8 @@ msgid ""
"install it. On macOS, open Hopper once and choose demo mode or activate a "
"license before your first analysis."
msgstr ""
-"{ph0} Hopper {ph1} (macOS或Linux):REA的安装程序检测到它或提供安装它。 "
-"在macOS上,打开一次Hopper,然后选择演示模式或在第一次分析之前激活许可证。"
+"{ph0}Hopper{ph1}(macOS 或 Linux):REA 的安装与配置流程会"
+"检测到它,或提示你安装。在 macOS 上,先打开一次 Hopper,选择演示模式或在首次分析前激活许可证。"
#. {ph0}:
#. {ph1}:
@@ -4688,8 +4688,8 @@ 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上进行实验):免费,但需要现有的Ghidra12.1。x安装和64位JDK21或更高版本。"
+"{ph0}Ghidra{ph1}(macO"
+"S 或 Linux;在 Windows 上为实验性):免费,但需要已安装的 Ghidra 12.1.x,以及 64 位 JDK 21 或更新版本。"
#. {ph0}:
#. {ph1}:
@@ -4698,7 +4698,7 @@ msgstr ""
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设置。"
+msgstr "{ph0}IDA{ph1}(Windows):适用于已完成 MCP 注册的现有 IDA 配置。"
#. {ph0}:
#. {ph1}:
@@ -4706,7 +4706,7 @@ msgstr "{ph0} IDA {ph1} (Windows):用于具有MCP注册的现有IDA设置。"
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid "See {ph0}Set up native analysis{ph1} for the steps."
-msgstr "见 {ph0}设置原生分析{ph1} 为步骤。"
+msgstr "具体步骤参见{ph0}配置原生分析{ph1}。"
#. {ph0}:
#. {ph1}:
@@ -4750,8 +4750,8 @@ msgid ""
"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。把本地 DX-Ball 1.07 可执行文件的路径交给助手。REA 不附带游戏,需要用自己的副本,也可以换成手里的其他小型 "
-"Windows 程序,问同类问题。"
+"示例提示词。把本地 DX-Ball 1.07 可执"
+"行文件的路径交给编程助手。REA 不附带 DX-Ball,请使用你自己的副本;也可以就你手上的另一个小型 Windows 程序问同样的问题。"
#: website/public/guides/native/index.html:364
msgctxt "page:guides/native/index.html"
@@ -4848,7 +4848,7 @@ msgid ""
"With a scale of 1.0, screen positions 0, 320 and 640 map to −500, 0 and 500 "
"before integer conversion. The calculation puts the center of the screen at "
"the center of the stereo field."
-msgstr "比例为1.0时,屏幕位置0、320和640在整数转换之前映射到-500、0和500。 计算将屏幕的中心置于立体场的中心。"
+msgstr "比例为 1.0 时,屏幕坐标 0、320 和 640 在整数转换前映射到 -500、0 和 500。这一计算把屏幕正中放在立体声场的中心。"
#: website/public/guides/native/index.html:444
msgctxt "page:guides/native/index.html"
@@ -4864,7 +4864,7 @@ msgstr "编程助手使用REA的发现来编写C.单独的检查将3,205个输
#, 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}"
+msgstr "{ph0}查看完整调查过程和汇编与 C 的对比{ph1}"
#: website/public/guides/native/index.html:456
msgctxt "page:guides/native/index.html"
@@ -4882,8 +4882,8 @@ msgid ""
"questions include “How is this file parsed?” or “Which function handles this"
" menu action?”"
msgstr ""
-"{ph0}连接原生分析提供程序{ph1},然后给你的编程助手一个本地可执行文件或库和一个要调查的函数。 "
-"有用的起始问题包括\"如何解析此文件?\"或\"哪个函数处理此菜单操作?”"
+"{ph0}连接原生分析提供程序{ph1},然后给"
+"编程助手一个本地可执行文件或库,并指定要调查的功能。有用的起始问题包括“如何解析这个文件?”或“哪个函数处理这个菜单操作?”"
#: website/public/guides/native/index.html:464
msgctxt "page:guides/native/index.html"
@@ -4920,14 +4920,14 @@ msgstr "把伪代码与指令、引用一起阅读。结果中尚未解析的调
#: website/public/guides/native/index.html:6
msgctxt "page:guides/native/index.html"
msgid "Native Binary Analysis — REA"
-msgstr "原生二元分析-REA"
+msgstr "原生二进制分析 — REA"
#: website/public/guides/native/index.html:7
msgctxt "page:guides/native/index.html"
msgid ""
"Recover a native calculation with REA: inspect instructions, follow a "
"caller, read constants and check reconstructed C."
-msgstr "使用REA恢复本机计算:检查指令,遵循调用者,读取常量并检查重构的C。"
+msgstr "用 REA 还原一段原生计算:检查指令、追踪调用者、读取常量并检查重建的 C。"
#: website/public/guides/native/index.html:207
msgctxt "page:guides/native/index.html"
@@ -5008,7 +5008,7 @@ msgstr "{ph0}试试REA {ph1}"
#, python-brace-format
msgctxt "page:index.html"
msgid "{ph0}Go deeper{ph1}"
-msgstr "{ph0}更深入{ph1}"
+msgstr "{ph0}深入了解{ph1}"
#: website/public/index.html:226
msgctxt "page:index.html"
@@ -5106,7 +5106,7 @@ msgctxt "page:index.html"
msgid ""
"“{ph0}0x5b? 0x5c?{ph1} Two jumps to the same place. Which operators are "
"these?”"
-msgstr "“{ph0}0x5b?0x5c?{ph1}两个跳转去了同一个位置。它们对应哪些运算符?”"
+msgstr "“{ph0}0x5b? 0x5c?{ph1} 两处跳转到同一个目标。它们对应哪些运算符?”"
#: website/public/index.html:440
msgctxt "page:index.html"
@@ -5195,7 +5195,7 @@ msgstr "{ph0}你需要读懂指令、追踪调用,再还原计算过程。{ph1
#, 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 · 计算器"
+msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}示例提示词 · 计算器"
#: website/public/index.html:534
msgctxt "page:index.html"
@@ -5584,7 +5584,7 @@ msgstr "下载 Notes 示例,追踪 CSV 导出,再修改一个输入来验证
#: website/public/index.html:1082
msgctxt "page:index.html"
msgid "Try the guided example"
-msgstr "跟着示例开始"
+msgstr "跟着引导示例做一遍"
#: website/public/index.html:1099
msgctxt "page:index.html"
@@ -5667,7 +5667,7 @@ msgstr "复制安装命令"
#: website/public/index.html:361
msgctxt "page:index.html"
msgid "Follow the manual Calculator analysis"
-msgstr "按照手动计算器分析"
+msgstr "跟随手工完成的计算器分析"
#: website/public/index.html:517
msgctxt "page:index.html"
@@ -5719,7 +5719,7 @@ msgstr "{ph0}首页{ph1} / {ph2}案例展示{ph3} /安卓"
#: website/public/showcase/aegis/index.html:201
msgctxt "page:showcase/aegis/index.html"
msgid "Case study · Aegis Authenticator"
-msgstr "案例研究 · Aegis验证器"
+msgstr "案例研究 · Aegis Authenticator"
#. {ph0}:
#: website/public/showcase/aegis/index.html:202
@@ -5807,7 +5807,7 @@ msgstr ""
#: website/public/showcase/aegis/index.html:249
msgctxt "page:showcase/aegis/index.html"
msgid "In this case study"
-msgstr "在本个案研究中"
+msgstr "在本案例研究中"
#. {ph0}:
#. {ph1}:
@@ -5839,7 +5839,7 @@ msgstr "{ph0}用REA查找代码 {ph1}"
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid "{ph0}Read the calculation{ph1}"
-msgstr "{ph0}阅读计算{ph1}"
+msgstr "{ph0}读懂这段计算{ph1}"
#. {ph0}:
#. {ph1}:
@@ -6292,7 +6292,7 @@ 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分析需要完整的JDK17或更高版本。 选择它与 {ph0} 或 {ph1}. 本案例使用了JDK21。"
+msgstr "Android 分析需要完整的 JDK 17 或更高版本。通过设置 {ph0} 或 {ph1} 来选择它。本案例使用了 JDK 21。"
#: website/public/showcase/aegis/index.html:731
msgctxt "page:showcase/aegis/index.html"
@@ -6428,14 +6428,14 @@ msgstr "{ph0}首页{ph1} / {ph2}案例展示{ph3} /CTF"
#: website/public/showcase/ctf/index.html:200
msgctxt "page:showcase/ctf/index.html"
msgid "Case study · DownUnderCTF 2023"
-msgstr "案例研究·Downunderctf2023"
+msgstr "案例研究 · DownUnderCTF 2023"
#. {ph0}:
#: website/public/showcase/ctf/index.html:201
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid "Find the flag in{ph0}a CTF binary."
-msgstr "找到国旗{ph0}一个CTF二进制文件。"
+msgstr "在一个 CTF 二进制文件中{ph0}找到 flag。"
#. {ph0}: Correct!
#: website/public/showcase/ctf/index.html:202
@@ -6444,12 +6444,12 @@ 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 检查器,将其规则转换为方程,并找到一个使原始程序打印的输入 {ph0}."
+msgstr "用 REA 分析这个小型 flag 检查器,把它的规则转成方程,找出能让原程序打印 {ph0} 的输入。"
#: website/public/showcase/ctf/index.html:207
msgctxt "page:showcase/ctf/index.html"
msgid "masked squares flag checker · Easy · Linux x86-64"
-msgstr "蒙面方格旗检查器 · 容易·Linuxx86-64"
+msgstr "掩码方格 flag 检查器 · 简单 · Linux x86-64"
#: website/public/showcase/ctf/index.html:210
msgctxt "page:showcase/ctf/index.html"
@@ -6459,7 +6459,7 @@ msgstr "查看原始挑战"
#: website/public/showcase/ctf/index.html:218
msgctxt "page:showcase/ctf/index.html"
msgid "From a binary to a checked answer"
-msgstr "从二进制到检查答案"
+msgstr "从二进制文件到经过验证的答案"
#. {ph0}:
#. {ph1}:
@@ -6491,8 +6491,8 @@ msgid ""
"returns the instructions and data behind each check. The agent turns them "
"into equations.{ph5}"
msgstr ""
-"{ph0}02 · 提取规则{ph1}{ph2}36个字符·26个总和{ph3}{ph4}REA 返回每个检查后面的指令和数据。 "
-"剂将它们转化为方程。{ph5}"
+"{ph0}02 · 提取规则{ph1}{ph2}36 个字符 · "
+"26 个求和式{ph3}{ph4}REA 返回每项检查背后的指令和数据。编程助手把它们转化为方程。{ph5}"
#. {ph0}:
#. {ph1}:
@@ -6508,14 +6508,14 @@ msgid ""
" script solves the equations. REA captures the original program accepting "
"the result.{ph5}"
msgstr ""
-"{ph0}03 · 解决并运行{ph1}{ph2}恢复旗→正确!{ph3}{ph4}一个Python脚本解决方程. REA "
-"捕获接受结果的原始程序。{ph5}"
+"{ph0}03 · 求解并运行{ph1}{ph2}还原出"
+"的 flag → 正确!{ph3}{ph4}一个 Python 脚本解出这些方程。REA 捕获到原程序接受该结果。{ph5}"
#: website/public/showcase/ctf/index.html:245
msgctxt "page:showcase/ctf/index.html"
msgid ""
"The challenge is by joseph, published in DownUnderCTF's official repository."
-msgstr "挑战是由约瑟夫,发表在DownUnderCTF的官方代码仓库。"
+msgstr "该挑战由 joseph 编写,发布在 DownUnderCTF 的官方仓库中。"
#: website/public/showcase/ctf/index.html:253
msgctxt "page:showcase/ctf/index.html"
@@ -6536,7 +6536,7 @@ msgstr "{ph0}查找检查代码{ph1}"
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid "{ph0}Read one mask{ph1}"
-msgstr "{ph0}读一个面具{ph1}"
+msgstr "{ph0}读一个掩码{ph1}"
#. {ph0}:
#. {ph1}:
@@ -6544,7 +6544,7 @@ msgstr "{ph0}读一个面具{ph1}"
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid "{ph0}Assembly to readable code{ph1}"
-msgstr "{ph0}汇编到可读代码{ph1}"
+msgstr "{ph0}从汇编到可读代码{ph1}"
#. {ph0}:
#. {ph1}:
@@ -6583,7 +6583,7 @@ 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 "讲义是一个15KB可执行文件。 它要求一面旗帜,然后打印 {ph0} 或 {ph1}. 从一个简单的请求开始给你的编程助手。"
+msgstr "题目附件是一个 15 KB 的可执行文件。它要求输入一个 flag,然后打印 {ph0} 或 {ph1}。先向你的编程助手发出一个简单的请求。"
#. {ph0}:
#. {ph1}:
@@ -6630,24 +6630,24 @@ msgctxt "page:showcase/ctf/index.html"
msgid ""
"An example prompt, with the downloaded challenge available locally and a "
"native analysis provider connected."
-msgstr "一个示例提示,下载的质询在本地可用,并连接了原生分析提供程序。"
+msgstr "一个示例提示,题目已下载到本地,并连接了原生分析提供程序。"
#: website/public/showcase/ctf/index.html:302
msgctxt "page:showcase/ctf/index.html"
msgid "Follow the input prompt to its function"
-msgstr "按照输入提示到其函数"
+msgstr "从输入提示追踪到对应函数"
#: website/public/showcase/ctf/index.html:331
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 "引用为编程助手提供了一个调查的地方,即使可执行文件的原始函数名已被删除。"
+msgstr "这条引用为编程助手提供了调查入口,即使可执行文件的原始函数名已被移除。"
#: website/public/showcase/ctf/index.html:338
msgctxt "page:showcase/ctf/index.html"
msgid "Read the checker and its two helpers"
-msgstr "阅读检查器和它的两个助手"
+msgstr "阅读检查器及其两个辅助函数"
#. {ph0}: 0x18
#. {ph1}: 0x270
@@ -6659,20 +6659,20 @@ msgid ""
"sums the selected codes and compares the result with a stored number. Its "
"{ph0}-byte steps across {ph1} bytes give 26 masks."
msgstr ""
-"第一个循环复制36个字符代码。 检查循环解码掩码,对所选代码求和,并将结果与存储的数字进行比较。 其 {ph0}-字节跨步 {ph1} "
-"字节给出26个掩码。"
+"第一个循环复制36个字符代码。"
+" 检查循环解码掩码,对所选代码求和,并将结果与存储的数字进行比较。 它以 {ph0} 字节为步长跨越 {ph1} 字节,得到 26 个掩码。"
#: website/public/showcase/ctf/index.html:374
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的导入图像。"
+msgstr "以下是从一次全新 REA 分析中选取的结果。本地目标路径为显示而做了缩短;地址对应 REA 导入的内存映像。"
#: website/public/showcase/ctf/index.html:382
msgctxt "page:showcase/ctf/index.html"
msgid "One check reveals one character"
-msgstr "一张检查显示一个字符"
+msgstr "一次检查揭示一个字符"
#: website/public/showcase/ctf/index.html:383
msgctxt "page:showcase/ctf/index.html"
@@ -6680,7 +6680,7 @@ msgid ""
"The checker arranges the input in a 6×6 grid. A mask chooses which cells "
"contribute to a sum. Its compact encoding uses negative numbers to skip "
"cells and positive numbers to select them."
-msgstr "检查器将输入排列在6×6网格中。 掩码选择哪些单元格对总和做出贡献。 它的紧凑编码使用负数跳过单元格和正数来选择它们。"
+msgstr "检查器把输入排列在 6×6 网格中。掩码决定哪些单元格参与求和。它的紧凑编码用负数跳过单元格,用正数选中它们。"
#. {ph0}:
#. {ph1}:
@@ -6707,8 +6707,8 @@ msgid ""
"means −21. The target is a little-endian integer. Together, these bytes tell"
" the agent that {ph2}, so that character is {ph3}."
msgstr ""
-"指示 {ph0} 将掩码字节读取为有符号值。 这就是为什么 {ph1} 表示-21. 目标是一个小端整数。 这些字节一起告诉编程助手 "
-"{ph2},所以该字符是 {ph3}."
+"指令 {ph0} 会把掩码字节按有符号值读取。这就是 {ph1} "
+"表示 −21 的原因。目标是一个小端整数。这些字节一起告诉编程助手 {ph2},因此该字符是 {ph3}。"
#: website/public/showcase/ctf/index.html:441
msgctxt "page:showcase/ctf/index.html"
@@ -6720,7 +6720,7 @@ msgctxt "page:showcase/ctf/index.html"
msgid ""
"Select a step to connect the summing helper and its caller to the same rule "
"in C."
-msgstr "选择一个步骤将求和帮助程序及其调用者连接到C中的同一规则。"
+msgstr "选择一个步骤,把求和辅助函数及其调用方对应到 C 中的同一条规则。"
#. {ph0}:
#. {ph1}:
@@ -6752,7 +6752,7 @@ msgstr "{ph0}03{ph1} 添加"
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid "{ph0}04{ph1} Advance"
-msgstr "{ph0}04{ph1} 前进,前进"
+msgstr "{ph0}04{ph1} 前进"
#. {ph0}:
#. {ph1}:
@@ -6760,17 +6760,17 @@ msgstr "{ph0}04{ph1} 前进,前进"
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid "{ph0}05{ph1} Compare"
-msgstr "{ph0}05{ph1} 比较一下"
+msgstr "{ph0}05{ph1} 比较"
#: website/public/showcase/ctf/index.html:496
msgctxt "page:showcase/ctf/index.html"
msgid "REA · selected original instructions"
-msgstr "REA · 选定的原始说明"
+msgstr "REA · 选取的原始指令"
#: website/public/showcase/ctf/index.html:520
msgctxt "page:showcase/ctf/index.html"
msgid "Readable C · one-check summary"
-msgstr "可读的C · 一检查摘要"
+msgstr "可读的 C · 单次检查摘要"
#. {ph0}:
#. {ph1}:
@@ -6779,7 +6779,7 @@ msgstr "可读的C · 一检查摘要"
#, 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} 持有运行总和。"
+msgstr "{ph0}01 · 从零开始。{ph1} {ph2} 保存当前的累加和。"
#. {ph0}:
#. {ph1}:
@@ -6789,7 +6789,7 @@ msgctxt "page:showcase/ctf/index.html"
msgid ""
"{ph0}02 · Check the mask cell.{ph1} A zero value skips the character; a "
"nonzero value includes it."
-msgstr "{ph0}02 · 检查掩码单元格。{ph1} 零值跳过字符;非零值包括它。"
+msgstr "{ph0}02 · 检查掩码单元格。{ph1} 零值表示跳过该字符,非零值表示将其计入。"
#. {ph0}:
#. {ph1}:
@@ -6809,7 +6809,7 @@ 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} 原始循环每个整数前进四个字节,并访问六个单元格的六行。"
+msgstr "{ph0}04 · 移动到下一个单元格。{ph1} 原始循环每处理一个整数前进 4 字节,遍历 6 行、每行 6 个单元格。"
#. {ph0}:
#. {ph1}:
@@ -6821,14 +6821,14 @@ msgctxt "page:showcase/ctf/index.html"
msgid ""
"{ph0}05 · Compare with the stored target.{ph1} The caller receives the sum "
"in {ph2}. A mismatch jumps to {ph3}."
-msgstr "{ph0}05 · 与存储的目标进行比较。{ph1} 调用方在 {ph2}. 不匹配跳转到 {ph3}."
+msgstr "{ph0}05 · 与存储的目标值比较。{ph1} 调用方在 {ph2} 中得到总和,不匹配则跳转到 {ph3}。"
#: website/public/showcase/ctf/index.html:573
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个单元格循环的解释性摘要。"
+msgstr "指令来自求和辅助函数及其调用方。C 版本是一份说明性摘要:使用有意义的命名,并将二维遍历改写为遍历 36 个单元格的单层循环。"
#: website/public/showcase/ctf/index.html:581
msgctxt "page:showcase/ctf/index.html"
@@ -6842,7 +6842,7 @@ msgid ""
"character codes and requires a total of 1441. The overlapping selections "
"give equations that a small Python script can solve together."
msgstr ""
-"大多数掩码选择几个单元格。 例如,第一次检查添加了16个字符代码,总共需要1441个。 重叠的选择给出了一个小的Python脚本可以一起求解的方程。"
+"大多数掩码会选中多个单元格。例如,第一次检查累加 16 个字符编码,要求总和等于 1441。这些相互重叠的选择构成方程,一个小型 Python 脚本即可一并求解。"
#: website/public/showcase/ctf/index.html:590
msgctxt "page:showcase/ctf/index.html"
@@ -6859,8 +6859,8 @@ msgid ""
"underscores and braces. The complete download includes all 26 masks and "
"targets."
msgstr ""
-"Z3是一个求解器,可以找到满足这些方程的值。 此摘录使用提取的检查,并假定 {ph0} 用字母,数字,下划线和大括号标记。 "
-"完整的下载包括所有26个面具和目标。"
+"Z3 是一个求解器,可以找到满足这些方程的值。此节选使用提取出"
+"的检查,并假定 flag 以 {ph0} 为前缀,包含字母、数字、下划线和大括号。完整下载包含全部 26 个掩码及其目标值。"
#: website/public/showcase/ctf/index.html:624
msgctxt "page:showcase/ctf/index.html"
@@ -6882,7 +6882,7 @@ msgid ""
"flag. Changing one selected character from {ph0} to {ph1} makes the first "
"sum 1440 instead of 1441, and the program rejects it."
msgstr ""
-"REA的进程捕获记录接受已解决标志的原始可执行文件。 更改一个选定的字符 {ph0} 到 {ph1} 使第一和1440而不是1441,并且程序拒绝它。"
+"REA 的进程捕获记录了原始可执行文件接受已求得 flag 的过程。把某个被选中的字符从 {ph0} 改成 {ph1},第一个总和就从 1441 变成 1440,程序随之拒绝该输入。"
#: website/public/showcase/ctf/index.html:641
msgctxt "page:showcase/ctf/index.html"
@@ -6902,12 +6902,12 @@ msgstr "退出代码"
#: website/public/showcase/ctf/index.html:648
msgctxt "page:showcase/ctf/index.html"
msgid "Solver's flag"
-msgstr "解算者之旗"
+msgstr "求解器得到的 flag"
#: website/public/showcase/ctf/index.html:653
msgctxt "page:showcase/ctf/index.html"
msgid "One character changed"
-msgstr "一个角色改变了"
+msgstr "改动一个字符"
#: website/public/showcase/ctf/index.html:661
msgctxt "page:showcase/ctf/index.html"
@@ -6929,7 +6929,7 @@ 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 "恢复的值还与组织者发布的挑战元数据中的标志相匹配,在解决二进制后检查。"
+msgstr "解出该二进制文件的 flag 后核对:还原出的值也与主办方公布的题目元数据中的 flag 一致。"
#: website/public/showcase/ctf/index.html:683
msgctxt "page:showcase/ctf/index.html"
@@ -6943,8 +6943,8 @@ msgid ""
"with Ghidra 12.1.4 on Linux x64. The binary is a stripped x86-64 ELF, 15,248"
" bytes."
msgstr ""
-"在2026年10月8日使用REA4.1.0和Ghidra12.1.4在Linux x64上进行新的分析和两个过程捕获。 "
-"二进制文件是一个剥离的x86-64ELF,15,248字节。"
+"2026 年 10 月 8 日完成了全新分析,并做了两次进程捕获,使用 REA "
+"4.1.0 与 Ghidra 12.1.4,运行于 Linux x64。该二进制文件是一个去符号的 x86-64 ELF,大小为 15,248 字节。"
#: website/public/showcase/ctf/index.html:695
msgctxt "page:showcase/ctf/index.html"
@@ -6952,7 +6952,7 @@ 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 "在阅读组织者的源代码或解决方案之前,对字符串引用,函数和常量进行了检查。 Python求解器和图表是根据REA结果构建的。"
+msgstr "在阅读主办方的源码或解答之前,先用 REA 检查了字符串引用、函数和常量。Python 求解器与图示都是根据这些 REA 结果构建的。"
#. {ph0}:
#: website/public/showcase/notion/index.html:201
@@ -8063,12 +8063,12 @@ 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的剪贴板编写器。"
+msgstr "从 Notion 的页面 API 出发,经预加载脚本和主进程,一路追踪到 Electron 写入剪贴板的接口。"
#: website/public/showcase/notion/index.html:206
msgctxt "page:showcase/notion/index.html"
msgid "Notion Desktop 7.6.1 · JavaScript · REA"
-msgstr "Notion桌面7.6.1·JavaScript*REA"
+msgstr "Notion Desktop 7.6.1 · JavaScript · REA"
#: website/public/showcase/notion/index.html:210
msgctxt "page:showcase/notion/index.html"
@@ -8238,7 +8238,7 @@ msgctxt "page:showcase/notion/index.html"
msgid ""
"An example prompt with Notion's local application package available to your "
"coding agent."
-msgstr "一个示例提示与Notion的本地应用程序包可供你的编程助手."
+msgstr "一个示例提示,配合本地 Notion 应用包供你的编程助手使用。"
#: website/public/showcase/notion/index.html:297
msgctxt "page:showcase/notion/index.html"
@@ -8284,8 +8284,8 @@ msgid ""
"agent something precise to look for in the main bundle. The four excerpts "
"below show the route it connects."
msgstr ""
-"助手打开这些位置,在组装的 API 中找到剪贴板成员,再读取 {ph0}。调用处传入 "
-"{ph1},让助手知道要在主进程代码中搜索哪个名称。下面四段代码展示这条调用链。"
+"编程助手打开这些位置,在重建出的 API 中找到剪贴板成员,再读取 {ph0"
+"}。调用处传入 {ph1},让编程助手知道要在主进程代码中搜索哪个名称。下面四段代码展示这条调用链。"
#: website/public/showcase/notion/index.html:335
msgctxt "page:showcase/notion/index.html"
@@ -8302,7 +8302,7 @@ msgstr "从打包的JavaScript简化,具有可读的变量名称。 不相关
#: website/public/showcase/notion/index.html:342
msgctxt "page:showcase/notion/index.html"
msgid "Start at the API exposed to the page"
-msgstr "从公开到页面的API开始"
+msgstr "从暴露给页面的 API 开始"
#. {ph0}: invokerInMain
#: website/public/showcase/notion/index.html:364
@@ -8311,7 +8311,7 @@ msgctxt "page:showcase/notion/index.html"
msgid ""
"This member supplies the channel name. The implementation of {ph0} tells us "
"how the request leaves the page's process."
-msgstr "此成员提供通道名称。 的实施 {ph0} 告诉我们请求如何离开页面的进程。"
+msgstr "此成员提供通道名称。{ph0} 的实现告诉我们请求如何离开页面进程。"
#: website/public/showcase/notion/index.html:371
msgctxt "page:showcase/notion/index.html"
@@ -8341,12 +8341,12 @@ msgctxt "page:showcase/notion/index.html"
msgid ""
"The main process uses another wrapper. Its {ph0} method registers an {ph1} "
"receiver for that channel."
-msgstr "主进程使用另一个包装器。 其 {ph0} 方法注册一个 {ph1} 那个频道的接收器。"
+msgstr "主进程使用另一个包装器。它的 {ph0} 方法为该通道注册一个 {ph1} 接收器。"
#: website/public/showcase/notion/index.html:430
msgctxt "page:showcase/notion/index.html"
msgid "Find the write and its sender check"
-msgstr "查找写入及其发件人检查"
+msgstr "查找写入调用及其发送方校验"
# Reviewed for clear case-study reasoning and evidence.
#: website/public/showcase/notion/index.html:453
@@ -8378,7 +8378,7 @@ msgstr ""
#: website/public/showcase/notion/index.html:471
msgctxt "page:showcase/notion/index.html"
msgid "HTML links to saved block data"
-msgstr "保存的块数据的HTML链接"
+msgstr "HTML 关联到已保存的内容块数据"
#: website/public/showcase/notion/index.html:495
msgctxt "page:showcase/notion/index.html"
@@ -8408,7 +8408,7 @@ 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恢复所述块数据。"
+msgstr "粘贴时,Notion 会查找 HTML 中的 ID,并与保存的副本比对。ID 一致即可恢复内容块数据。"
#: website/public/showcase/notion/index.html:509
msgctxt "page:showcase/notion/index.html"
@@ -8430,7 +8430,7 @@ 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解析为块数据。 此示例显示表如何成为标题和数据行。"
+msgstr "Notion 将 Markdown 解析为内容块数据。此示例展示一张表格如何变成表头行和数据行。"
#: website/public/showcase/notion/index.html:523
msgctxt "page:showcase/notion/index.html"
@@ -8442,7 +8442,7 @@ msgctxt "page:showcase/notion/index.html"
msgid ""
"Recorded output from an extracted Markdown parser. The table becomes rows "
"and cells."
-msgstr "从提取的Markdown解析器记录输出。 表变为行和单元格。"
+msgstr "来自抽取出的 Markdown 解析器的记录输出。表格变成行和单元格。"
#: website/public/showcase/notion/index.html:551
msgctxt "page:showcase/notion/index.html"
@@ -8533,8 +8533,8 @@ msgid ""
" Markdown and AI/chat parsers have separate entry points and intermediate "
"formats."
msgstr ""
-"Markdown 示例使用解析器模块 {ph0}。保存的模块测试显示,页面和聊天过滤器都会保留这张表格。粘贴/导入、结构化标记和 "
-"AI/聊天解析器各自有不同入口与中间格式。"
+"Markdown 示例使用解析器模块 {ph0}。"
+"保存的模块测试显示,页面和聊天过滤器都会保留这张表格。粘贴/导入、结构化 Markdown 和 AI/聊天解析器各自有不同入口与中间格式。"
#. {ph0}:
#. {ph1}:
@@ -8558,12 +8558,12 @@ msgctxt "page:showcase/notion/index.html"
msgid ""
"{ph0}DX-Ball reconstruction{ph1}{ph2}Follow native instructions to a checked"
" C function.{ph3}"
-msgstr "{ph0}DX-Ball 重建工程{ph1}{ph2}按照原生说明检查c函数。{ph3}"
+msgstr "{ph0}DX-Ball 重建{ph1}{ph2}沿原生指令找到一个经过验证的 C 函数。{ph3}"
#: website/public/showcase/notion/index.html:6
msgctxt "page:showcase/notion/index.html"
msgid "Notion Electron Reverse Engineering: Clipboard — REA"
-msgstr "Notion Electron逆向工程:Clipboard-REA"
+msgstr "Notion Electron 逆向工程:剪贴板 — REA"
# Reviewed for clear case-study reasoning and evidence.
#: website/public/showcase/notion/index.html:7
@@ -8613,7 +8613,7 @@ msgstr "复制Notion剪贴板接收器摘录"
#: website/public/showcase/notion/index.html:491
msgctxt "page:showcase/notion/index.html"
msgid "Restoring rich clipboard data on paste"
-msgstr "在粘贴上还原丰富的剪贴板数据"
+msgstr "粘贴时还原富剪贴板数据"
#: website/public/showcase/notion/index.html:635
msgctxt "page:showcase/notion/index.html"
@@ -8682,7 +8682,7 @@ msgctxt "page:showcase/th04/index.html"
msgid ""
"{ph0}01 · Original game{ph1}{ph2}MAIN.EXE{ph3}{ph4}The PC-98 executable and "
"its bullet-angle helper.{ph5}"
-msgstr "{ph0}01 · 原创游戏{ph1}{ph2}主要。EXE文件{ph3}{ph4}该 PC-98 可执行文件及其子弹角助手。{ph5}"
+msgstr "{ph0}01 · 原版游戏{ph1}{ph2}MAIN.EXE{ph3}{ph4}该 PC-98 可执行文件及其弹幕角度辅助函数。{ph5}"
# Reviewed for clear case-study reasoning and evidence.
#. {ph0}:
@@ -8779,7 +8779,7 @@ msgstr "{ph0}汇编到C++{ph1}"
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid "{ph0}Checking the source{ph1}"
-msgstr "{ph0}检查来源{ph1}"
+msgstr "{ph0}检查源码{ph1}"
#. {ph0}:
#. {ph1}:
@@ -8890,7 +8890,7 @@ msgctxt "page:showcase/th04/index.html"
msgid ""
"These lines select the pattern before difficulty and performance tuning. "
"{ph0}Read the attack's source{ph1}."
-msgstr "这些线在难度和性能调整之前选择模式。 {ph0}阅读攻击的来源{ph1}."
+msgstr "这几行代码在难度与性能调整之前选定弹幕图案。{ph0}阅读该攻击的源码{ph1}。"
#: website/public/showcase/th04/index.html:360
msgctxt "page:showcase/th04/index.html"
@@ -8943,7 +8943,7 @@ msgstr ""
#: website/public/showcase/th04/index.html:423
msgctxt "page:showcase/th04/index.html"
msgid "Find where the pattern turns toward the player"
-msgstr "找到模式转向玩家的位置"
+msgstr "找到弹幕转向玩家的那一段"
# Reviewed for clear case-study reasoning and evidence.
#: website/public/showcase/th04/index.html:444
@@ -9106,7 +9106,7 @@ msgstr "汇编节选展示自机狙环形分支、瞄准计算和最终存储。
#: website/public/showcase/th04/index.html:613
msgctxt "page:showcase/th04/index.html"
msgid "Read the maintained ring and aim source"
-msgstr "阅读维护的环和瞄准源"
+msgstr "阅读维护中的环形弹幕与瞄准源码"
#. {ph0}: 0x2cfc8
#: website/public/showcase/th04/index.html:702
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid "{ph0} in REA's loaded image"
-msgstr "{ph0} 在REA的加载图像"
+msgstr "{ph0}(位于 REA 的加载映像中)"
#: website/public/showcase/th04/index.html:705
msgctxt "page:showcase/th04/index.html"
@@ -9220,12 +9220,12 @@ msgstr "{ph0},返回 {ph1}"
#: website/public/showcase/th04/index.html:712
msgctxt "page:showcase/th04/index.html"
msgid "Recorded code inspection"
-msgstr "记录代码检查"
+msgstr "已记录的代码检查"
#: website/public/showcase/th04/index.html:713
msgctxt "page:showcase/th04/index.html"
msgid "REA 4.1.0 · 7 October 2026"
-msgstr "REA4.1.0*2026年10月7日"
+msgstr "Notion Desktop 7.6.1 · JavaScript · REA"
# Reviewed for clear case-study reasoning and evidence.
#: website/public/showcase/th04/index.html:718
@@ -9307,7 +9307,7 @@ msgctxt "page:showcase/th04/index.html"
msgid ""
"{ph0}Bullet-generation source{ph1}{ph2}The complete helper, other pattern "
"types and template tuning.{ph3}"
-msgstr "{ph0}子弹生成源{ph1}{ph2}完整的助手,其他模式类型和模板调整。{ph3}"
+msgstr "{ph0}弹幕生成源码{ph1}{ph2}完整的辅助函数、其他弹幕类型与模板调整。{ph3}"
#. {ph0}: Node.js
#: website/public/faq/index.html:221
@@ -10620,7 +10620,7 @@ msgstr ""
#, 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}。{ph7}"
+msgstr "{ph0}页面 · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}调用 {ph6}。{ph7}"
#. {ph0}:
#. {ph1}: preload.js
@@ -10762,7 +10762,7 @@ msgid ""
"Download the example and unzip it. The archive contains the complete {ph0} "
"folder. Analyze it with {ph1} and npm; Electron is not needed for this "
"example."
-msgstr "下载示例并解压缩。 存档包含完整的 {ph0} 文件夹。 分析它与 {ph1} 和 npm; Electron 本例不需要。"
+msgstr "下载示例并解压。压缩包内含完整的 {ph0} 文件夹。用 {ph1} 和 npm 分析它;本例不需要 Electron。"
#. {ph0}: Node.js
#. {ph1}:
@@ -10796,7 +10796,7 @@ msgstr ""
#, python-brace-format
msgctxt "page:index.html"
msgid "REA · loaded {ph0} · selected lines"
-msgstr "REA · 已加载 {ph0} · 代码节选"
+msgstr "REA · 已加载 {ph0} · 选定行"
#. {ph0}:
#. {ph1}: calc.exe
@@ -10854,14 +10854,14 @@ msgstr "tab_browser_view/{ph0} · IPC 辅助函数"
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid "main/{ph0} · handler helper"
-msgstr "主要/{ph0} · 处理程序助手"
+msgstr "main/{ph0} · 处理器辅助函数"
#. {ph0}: index.js
#: website/public/showcase/notion/index.html:433
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid "main/{ph0} · clipboard receiver"
-msgstr "主要/{ph0} · 剪贴板接收器"
+msgstr "main/{ph0} · 剪贴板接收函数"
#: website/public/assets/theme.js:52
msgctxt "runtime"
@@ -10885,8 +10885,8 @@ msgid ""
"capture Evidence, or connect Everywhere's MCP server to inspect captured "
"traffic with your agent."
msgstr ""
-"要检查 HTTP 请求和响应正文,请使用{ph0}Fiddler Everywhere:SAZ 捕获、MCP 和公开技能{ph1}。导出 SAZ ? "
-"HAR 1.2 可在 REA 中离线获取捕获 Evidence,也可以连接 Everywhere 的 MCP 服务器,让智能体检查已捕获的流量。"
+"要检查 HTTP 请求和响应正文,请使"
+"用{ph0}Fiddler Everywhere:SAZ 捕获、MCP 和公开技能{ph1}。导出 SAZ 或 HAR 1.2,即可离线获取捕获 Evidence 交给 REA;也可以连接 Everywhere 的 MCP 服务器,让编程助手检查已捕获的流量。"
#. {ph0}:
#: website/public/blog/index.html:203
@@ -10957,7 +10957,7 @@ 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 能提出哪些假设。{ph1} 后来的工作解决了早期尝试未能解决的问题。"
+msgstr "{ph0}模型能力会影响编程助手能提出哪些假设。{ph1} 后来的会话解决了此前工作未能解决的问题。"
#. {ph0}:
#. {ph1}:
@@ -10977,7 +10977,7 @@ 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}也要公平评估代码仓库里的知识。{ph1} 较小的模型配合良好的检索,可能已经掌握了足以推进工作的知识。"
+msgstr "{ph0}也要给代码仓库里的知识一个公平的对照。{ph1} 较小的模型配上良好的检索,可能已经掌握足够的知识推进工作。"
#. {ph0}:
#. {ph1}:
@@ -10987,7 +10987,7 @@ 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}训练模型选择下一个有价值的实验,同时检验它使用的验证器。{ph1} 反馈是否有用,取决于验证器究竟检查了什么。"
+msgstr "{ph0}训练模型选择下一个有价值的实验,同时检验它使用的校验基准。{ph1} 反馈是否有用,取决于校验基准究竟检查了什么。"
#. {ph0}:
#. {ph1}:
@@ -10997,7 +10997,7 @@ 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 工作流中获得的结果。"
+msgstr "{ph0}结合时间和成本,评估通过验证的重建成果。{ph1} 这是我希望从整个编程助手工作流中获得的结果。"
#: website/public/blog/reverse-engineering-models/index.html:244
msgctxt "page:blog/reverse-engineering-models/index.html"
@@ -11050,7 +11050,7 @@ msgstr "{ph0}逆向工程与强化学习{ph1}"
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "{ph0}When the oracle is wrong{ph1}"
-msgstr "{ph0}当验证器出错时{ph1}"
+msgstr "{ph0}当校验基准出错时{ph1}"
#. {ph0}:
#. {ph1}:
@@ -11066,7 +11066,7 @@ msgstr "{ph0}值得做的对照实验{ph1}"
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "{ph0}What kind of agent?{ph1}"
-msgstr "{ph0}这意味着怎样的 agent?{ph1}"
+msgstr "{ph0}这意味着怎样的编程助手?{ph1}"
#: website/public/blog/reverse-engineering-models/index.html:261
msgctxt "page:blog/reverse-engineering-models/index.html"
@@ -11082,8 +11082,8 @@ msgid ""
" I have changed models, the repositories have kept a record of what each "
"session managed to recover."
msgstr ""
-"从 2026 年 8 月开始,我一直在探索:如果给 agent "
-"访问程序的能力,以及验证自身工作的手段,它能独立完成多少逆向工作?我的经验主要来自游戏重建,尤其是东方系列。随着我更换模型,代码仓库记录了每次工作还原出的内容。"
+"从 2026 年 8 月开始,我一直在探索:如果给编程助手访问程序的能力,以及验证自身工作的手段,它能独立完成多少逆向工作?我的经验主要来自游戏重建,尤其是东方系列"
+"。随着我更换模型,代码仓库记录了每次工作还原出的内容。"
#: website/public/blog/reverse-engineering-models/index.html:270
msgctxt "page:blog/reverse-engineering-models/index.html"
@@ -11098,7 +11098,7 @@ msgstr ""
#: website/public/blog/reverse-engineering-models/index.html:277
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "The temporary values had to stay alive together"
-msgstr "临时值需要同时保持有效"
+msgstr "临时值必须同时存活"
#: website/public/blog/reverse-engineering-models/index.html:278
msgctxt "page:blog/reverse-engineering-models/index.html"
@@ -11163,7 +11163,7 @@ msgid ""
"lifetime hypothesis gave the agent a new direction; compiler feedback helped"
" it refine that hypothesis into a source arrangement that matched."
msgstr ""
-"我感兴趣的是,发现与验证如何共同推进工作。生命周期的假设给 agent 指明了新方向;编译器的反馈又帮助它逐步调整源码,直到找到匹配的写法。"
+"我感兴趣的是,发现与验证如何共同推进工作。生命周期的假设给编程助手指明了新方向;编译器的反馈又帮助它逐步调整源码,直到找到匹配的写法。"
#: website/public/blog/reverse-engineering-models/index.html:321
msgctxt "page:blog/reverse-engineering-models/index.html"
@@ -11218,8 +11218,8 @@ msgid ""
"agent can keep trying local variations for a long time before finding a "
"better way to express the surrounding work."
msgstr ""
-"{ph0}换一种表达方式,打开了更有价值的搜索空间。{ph1} 这两个例子让我认真看待通用模型的能力:agent "
-"可能花很长时间尝试局部变化,才找到一种更好的整体写法。"
+"{ph0}换一种表达方式,打开了更有价值的搜索空间。{ph"
+"1} 这两个例子让我认真看待通用模型的能力:编程助手可能花很长时间尝试局部变化,才找到一种更好的整体写法。"
#: website/public/blog/reverse-engineering-models/index.html:354
msgctxt "page:blog/reverse-engineering-models/index.html"
@@ -11362,7 +11362,7 @@ msgid ""
"failed in the same context. The starting point improves without changing the"
" model's weights."
msgstr ""
-"检索这些记录后,agent 可以从已知结果出发,看看我们是如何得到它的,也可以避开在相同条件下已经失败的方案。模型的参数没有改变,工作的起点却提高了。"
+"检索这些记录后,编程助手可以从已知结果出发,看看我们是如何得到它的,也可以避开在相同条件下已经失败的方案。模型的参数没有改变,工作的起点却提高了。"
#. {ph0}:
#. {ph1}:
@@ -11515,8 +11515,8 @@ msgid ""
" be able to revisit the source representation or inspect the evidence again."
msgstr ""
"{ph0}我希望模型学会如何利用反馈。{ph1} "
-"结果没有变化,可能意味着该重新考虑这个改动;差异发生变化,则可能指向另一个原因。当局部修改不再提供有效信息时,agent "
-"应该可以重新考虑源码的整体表达,或者回头检查证据。"
+"结果"
+"没有变化,可能意味着该重新考虑这个改动;差异发生变化,则可能指向另一个原因。当局部修改不再提供有效信息时,编程助手应该可以重新考虑源码的整体表达,或者回头检查证据。"
#: website/public/blog/reverse-engineering-models/index.html:552
msgctxt "page:blog/reverse-engineering-models/index.html"
@@ -11541,8 +11541,8 @@ msgid ""
"produce quick, repeatable feedback. The agent can compile a candidate, "
"inspect the mismatch and use that observation to choose its next step."
msgstr ""
-"范围明确的重建任务,为研究这些选择提供了一个实际环境。目标和编译器版本固定之后,许多源码实验都能快速给出可重复的反馈。agent "
-"可以编译候选源码、检查差异,再根据观察选择下一步。"
+"范围明确的重建任务,为研究这些选择提供了一个实际环境。"
+"目标和编译器版本固定之后,许多源码实验都能快速给出可重复的反馈。编程助手可以编译候选源码、检查差异,再根据观察选择下一步。"
#: website/public/blog/reverse-engineering-models/index.html:569
msgctxt "page:blog/reverse-engineering-models/index.html"
@@ -11586,7 +11586,7 @@ msgid ""
"useful correction, it had to work out what to measure."
msgstr ""
"不过,要得到这样一个定义明确的任务,有时得先确定函数负责哪些资源,或者设计新的方法观察程序运行时的行为。在 TH08 "
-"中,{ph0}一次碰撞差异最终追溯到原版处理浮点计算的方式{ph1}。agent 必须先弄清楚该测量什么,才能验证有价值的修正。"
+"中,{ph0}一次碰撞差异最终追溯到原版处理浮点计算的方式{ph1}。编程助手必须先弄清楚该测量什么,才能验证有价值的修正。"
#: website/public/blog/reverse-engineering-models/index.html:598
msgctxt "page:blog/reverse-engineering-models/index.html"
@@ -11599,7 +11599,7 @@ msgstr "这提示了能力全面的模型的另一个作用:先把问题变得
#: website/public/blog/reverse-engineering-models/index.html:606
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "When the oracle is wrong"
-msgstr "当验证器出错时"
+msgstr "当校验基准出错时"
#: website/public/blog/reverse-engineering-models/index.html:607
msgctxt "page:blog/reverse-engineering-models/index.html"
@@ -11608,8 +11608,8 @@ msgid ""
"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 ""
-"一旦用某项检查来训练模型,它的覆盖范围就会成为学习环境的一部分。我把这种参考标准或验证器称为 "
-"oracle。即使它能给出可重复的答案,我们也必须知道,这个答案覆盖了什么。"
+"一旦用某项检查来训练模型,它的覆盖范围就会成为学习环境的一部分。我把这种参考标准或校验基准"
+"称为 oracle。即使它能给出可重复的答案,我们也必须知道,这个答案覆盖了什么。"
#: website/public/blog/reverse-engineering-models/index.html:613
msgctxt "page:blog/reverse-engineering-models/index.html"
@@ -11652,8 +11652,8 @@ msgid ""
" 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} 我们没有用这个验证器训练 RL "
-"模型;实际观察到的是检查本身的漏洞。但如果把它用作奖励,同一个盲点也会进入学习环境。"
+"{ph0}如果用旧检查的结果作为奖励,模型可能学会生成错误的重建源码。{ph1} 我们没有用这个校验基准"
+"训练 RL 模型;实际观察到的是检查本身的漏洞。但如果把它用作奖励,同一个盲点也会进入学习环境。"
#. {ph0}:
#. {ph1}:
@@ -11690,7 +11690,7 @@ 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}改进模型和改进它的验证器,属于同一个研究问题。{ph1} 模型越擅长优化我们给它的反馈,我们就越需要理解反馈本身。"
+msgstr "{ph0}改进模型和改进它的校验基准,属于同一个研究问题。{ph1} 模型越擅长优化我们给它的反馈,我们就越需要理解反馈本身。"
#: website/public/blog/reverse-engineering-models/index.html:670
msgctxt "page:blog/reverse-engineering-models/index.html"
@@ -11796,7 +11796,7 @@ msgstr ""
#: website/public/blog/reverse-engineering-models/index.html:739
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "What kind of agent does this suggest?"
-msgstr "这意味着怎样的 agent?"
+msgstr "这意味着怎样的编程助手?"
#: website/public/blog/reverse-engineering-models/index.html:740
msgctxt "page:blog/reverse-engineering-models/index.html"
@@ -11807,9 +11807,9 @@ msgid ""
" results stop making sense, the broader agent could return to the target "
"evidence or investigate the measurement itself."
msgstr ""
-"如果不同模型在不同阶段各有所长,一种有价值的安排可能是:让能力全面的 agent "
-"可以调用专用模型。当任务变成一种熟悉的编译器搜索时,它可以请专用模型提出候选方案。如果结果开始说不通,通用 agent "
-"可以回头检查目标证据,或者调查测量本身。"
+"如果不同模型在不同阶段各有所长,一种有价值的安排"
+"可能是:让能力全面的编程助手可以调用专用模型。当任务变成一种熟悉的编译器搜索时,它可以请专用模型提出候选方案"
+"。如果结果开始说不通,通用编程助手可以回头检查目标证据,或者调查测量本身。"
#: website/public/blog/reverse-engineering-models/index.html:748
msgctxt "page:blog/reverse-engineering-models/index.html"
@@ -11818,7 +11818,7 @@ msgid ""
"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:753
msgctxt "page:blog/reverse-engineering-models/index.html"
@@ -12045,7 +12045,7 @@ msgstr "Android · APK 分析"
#: website/public/index.html:1037
msgctxt "page:index.html"
msgid "How an authenticator generates a login code"
-msgstr "验证器如何生成登录验证码"
+msgstr "身份验证器如何生成登录验证码"
#: website/public/index.html:1042
msgctxt "page:index.html"
@@ -12161,7 +12161,7 @@ msgctxt "page:get-started/index.html"
msgid ""
"Commands go in the terminal. Prompts labeled “Your coding agent” go in the "
"agent's chat."
-msgstr "命令粘贴到终端;标着“你的编程助手”的提问粘贴到助手的聊天框。"
+msgstr "命令粘贴到终端;标着“你的编程助手”的提示词粘贴到助手的聊天框。"
#. {ph0}:
#. {ph1}:
@@ -12212,7 +12212,7 @@ 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 来分析软件。从下面选一个客户端;第一次使用就展开它的安装步骤。"
+msgstr "你对话的编程助手就是 AI。REA 为它提供所用的检查工具。从下面选一个客户端;没用过就先看它的说明。"
#: website/public/get-started/index.html:443
msgctxt "page:get-started/index.html"
@@ -12404,7 +12404,7 @@ msgstr "把这段话复制给编程助手:"
#: website/public/get-started/index.html:808
msgctxt "page:get-started/index.html"
msgid "For one specific client, add its setup ID:"
-msgstr "如果只配置一个指定客户端,附上它的 setup ID:"
+msgstr "指定某一个客户端时,附上它的 setup ID:"
#. {ph0}: y
#: website/public/get-started/index.html:823
@@ -12422,7 +12422,7 @@ 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 则告诉它分析软件时该怎样使用这些工具。"
+msgstr "MCP 让编程助手能够调用 REA;skill 则为它提供分析软件的工作流程。"
#: website/public/get-started/index.html:838
msgctxt "page:get-started/index.html"
@@ -12461,8 +12461,8 @@ msgid ""
"button. Your agent can inspect its code without installing or launching "
"Electron."
msgstr ""
-"示例是一个包含六个文件的 Electron 应用,带有{ph0}Export notes(导出笔记){ph1}按钮。助手无需安装或启动 Electron"
-" 就能检查代码。"
+"示例是一个包含六个文件的 Electron "
+"应用,带有{ph0}Export notes{ph1}按钮。编程助手无需安装或启动 Electron 就能检查它的代码。"
#: website/public/get-started/index.html:892
msgctxt "page:get-started/index.html"
@@ -12558,7 +12558,7 @@ 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 分析这类软件时使用的本地工具。"
+msgstr "按你的目标选择对应小节。Provider 指 REA 分析这类软件时使用的本地工具。"
#: website/public/get-started/index.html:984
msgctxt "page:get-started/index.html"
@@ -13194,7 +13194,7 @@ msgid ""
"Linux arm64 installation, build the native decompiler for your computer "
"before continuing."
msgstr ""
-"把两个路径换成你已有的安装位置。如果刚在 macOS 或 Linux arm64 上解压 Ghidra,先为这台电脑编译原生反编译器,再继续下面的步骤。"
+"把两个路径换成你已有的安装位置。如果是全新安装在 macOS 或 Linux arm64 上,请先为这台电脑编译原生反编译器,再继续下面的步骤。"
#: website/public/get-started/index.html:1172
msgctxt "page:get-started/index.html"
@@ -13248,7 +13248,7 @@ msgstr "然后检查 Ghidra,并为客户端保存这些路径:"
#, python-brace-format
msgctxt "page:index.html"
msgid "Why does Calculator give 220 for {ph0}?"
-msgstr "为什么计算器中的 {ph0} 得到 220?"
+msgstr "为什么计算器对 {ph0} 给出 220?"
#. {ph0}:
#. {ph1}:
@@ -13353,7 +13353,7 @@ 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 追踪到系统剪贴板,看看复制如何保留丰富的区块数据。"
+msgstr "从 Notion 打包的 JavaScript 追踪到系统剪贴板,看看复制操作如何保留富文本区块数据。"
#: website/public/index.html:1060
msgctxt "page:index.html"
@@ -13372,7 +13372,7 @@ msgctxt "page:index.html"
msgid ""
"These guides cover setup and a first investigation for each kind of "
"software."
-msgstr "这些指南介绍各类软件的环境配置和第一次调查。"
+msgstr "这些指南介绍各类软件的安装配置和第一次调查。"
#. {ph0}:
#. {ph1}:
@@ -13633,7 +13633,7 @@ msgstr "{ph0}GitHub issues{ph1} — 报告问题或提出功能需求。"
#: website/public/index.html:294
msgctxt "page:index.html"
msgid "Setup for your platform:"
-msgstr "按你的平台设置:"
+msgstr "选择适合你的平台的安装方式:"
#. {ph0}:
#. {ph1}: curl
@@ -13697,7 +13697,7 @@ 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}。列出其中的函数和字符串,然后说明处理用户输入的部分,并给出代码引用。"
+msgstr "用 REA 通过我已配置的分析引擎检查 {ph0}。列出它的函数和字符串,然后结合代码引用说明处理用户输入的那部分。"
#: website/public/blog/index.html:120 website/public/blog/index.html:239
#: website/public/blog/reverse-engineering-models/index.html:120