Skip to content

Translations update from AnvilCraft Translate - #4935

Open
Gugle2308 wants to merge 1 commit into
dev/1.21/1.6from
translate/1.21/1.6
Open

Gugle2308 wants to merge 1 commit into
dev/1.21/1.6from
translate/1.21/1.6

Conversation

@Gugle2308

Copy link
Copy Markdown
Collaborator

Translations update from AnvilCraft Translate for Anvil-Dev/AnvilCraft/1.21/1.6.

Current translation status:

Weblate translation status

@Gugle2308

Copy link
Copy Markdown
Collaborator Author

代码审查摘要 — PR #4935

Action: opened(继续审查,未命中 closed/labeled)
范围: 1 个文件(0 Java / 0 新增 / 0 删除),+7 / −6 行 — 仅 src/main/resources/assets/anvilcraft/lang/zh_cn.json
作者: Gugle2308 | translate/1.21/1.6dev/1.21/1.6(base 29a8301d,与当前 dev/1.21/1.6 tip 一致 ✅)

🔍 diff 完整性校验(先做,避免静默截断)

  • patch-diff.githubusercontent.comapi.github.comAccept: v3.diff)两份 diff md5 完全一致3c53539b…)✅
  • 用 head SHA 0dbcf1c5 拉取最终 zh_cn.json 与 base 逐键对比:恰好 5 条值变更 + 1 条新增 key、0 条删除,与 diff 的 7+/6− 完全吻合 ✅(无隐式内容丢失)

✅ 校验结果

检查项 结果
JSON 语法(head 文件 json.load ✅ 2824 keys,尾逗号补全正确(missing_tools 加逗号 + 新 key 收尾)
en_us.json 占位符逐一对照 distance 4/4、optimized 11/11、traditional.hint 6/6、traditional.status 6/6(%1$s…%6$s 索引式一致)
与 Java 实参数量对照(BuildingRodClient / BuildingRodTraditionalOverlay ✅ 4 / 11 / 6 / 6 全匹配
新增 key 是否为真缺失 screen.anvilcraft.building_rod.traditional.scroll 在 base 的 zh_cn 中缺失,但 BuildingRodClient.traditionalHint() 第 584 行已在引用 → 本 PR 补上了真实缺口
\n 转义字节级检查 ✅ 为单反斜杠标准编码(5c 6e),解析后是真实换行;与 en_us / en_ud 写法一致;渲染路径用 font.split(component, maxWidth) 逐行绘制,多行可正常换行居中
英文残留 / 值内重复词 / CJK 混用 / EOF 缺换行 ✅ 全部 0 命中(No newline at end of file = 0)

这实际上是一次质量修复,而非普通同步:base 的 zh_cn 把按键硬编码成了 [Ctrl]/↑/↓/右击distance 只有 1 个 %shint 0 个),Java 却已传入真实按键组件,玩家改键后提示不会更新;新版本改为 %s 占位符驱动,并补上 traditional.status\n 断行(原来单行易溢出)。方向正确,值得合并。

⚠️ 建议(非阻塞)

  • screen.anvilcraft.building_rod.distance"%s/%s调整远近"%s/%s 与「调整远近」之间缺空格,渲染为 [↑]/[↓]调整远近,与同行其它占位符(按住 %s 固定| %s 固定蓝图)的空格风格不一致。建议改为 %s/%s 调整远近
  • screen.anvilcraft.building_rod.optimized — en_us 是 %s %s %s %s %s %s Move,中文译作「位置」(名词)而非「移动」。此译法在旧版本中就存在、本次仅断行未改内容,但既然本行被重写,建议顺手修正为「移动」。
  • screen.anvilcraft.building_rod.left_click(值 左击左键,改得对)— 该 key 属于孤儿 keyen_us.json 中不存在,全仓库 Java/其它语言文件中也没有任何引用(唯一命中是 advancements/…/all_in_one.json 里同名的、无关的 criterion 字符串)。它既不会被游戏读取,也不在 Weblate 源集合里。若确认是历史遗留,建议在后续 PR 中直接删除该条,避免继续占用翻译平台条目。

📌 范围说明(非缺陷)

zh_tw / zh_hk / lzh / de_de / ja_jp 的 building_rod.* 键数均为 0(该功能只有 zh_cn 有翻译)。这是 Weblate 按语言独立同步的正常表现,本 PR 只动 zh_cn 不构成遗漏。

📝 PR 标题

当前标题 Translations update from AnvilCraft Translate 信息量偏低。尝试执行 gh pr edit 时返回 the token in /opt/data/home/.config/gh/hosts.yml is invalid(未认证,且按约束不导出 token),故未自动修改。建议标题:

Update zh_cn building rod HUD translations 更新建筑杖提示的简体中文翻译

结论: APPROVE — 占位符、换行、key 集合、Java 实参四项全部对齐,仅 3 条非阻塞文案建议(2 条为顺带修正的旧文本/孤儿 key)。


由 Hermes Agent 审查

@Gugle2308

Copy link
Copy Markdown
Collaborator Author

💾 Self-improvement review: Patched references/tmp-collision-and-diff-file-extraction.md in skill 'github-webhook-pr-review' (1 replacement). · Patched references/lang-format-specifier-vs-callsite.md in skill 'github-webhook-pr-review' (1 replacement).

@Gugle2308
Gugle2308 force-pushed the translate/1.21/1.6 branch 2 times, most recently from 38c32e9 to f2c36a3 Compare September 18, 2026 13:20
@Gugle2308

Copy link
Copy Markdown
Collaborator Author

代码审查摘要 — PR #4935

操作: synchronize(Weblate 翻译同步,非 closed/labeled,正常审查)
范围: 1 个文件(0 Java / 0 新增文件 / 0 删除) / +7 −6 行
文件: src/main/resources/assets/anvilcraft/lang/zh_cn.jsonChinese (Simplified Han script) 100%,2527/2527)

🔍 diff 完整性与事实核对(全部通过)

校验项 结果
API changed_files/additions/deletions 1 / 7 / 6 —— 与 diff 完全一致 ✅
base+diff 应用后 md5 vs PR head 文件 md5 e3554070… == e3554070… ✅(未截断)
head/base sha f2c36a30 / 68d5f625,本地 fetch 对齐 ✅
JSON 解析 通过,2824 键 ✅
键集变化 新增 1(traditional.scroll)、删除 0 —— 无丢行
文件尾换行 }\n 保留(无 No newline 警告)✅
mergeable true(state=unstable,仅 CI 待跑)✅

🔴 关键问题

无。

⚠️ 警告

无。

💡 建议(非阻塞)

  1. screen.anvilcraft.building_rod.distance — 新值 按住 %s 固定投影距离\n%s/%s调整远近 | %s 固定蓝图%s/%s 与「调整远近」之间缺少空格(英文源为 %s/%s to adjust),而同串其它段(%s 执行%s 固定蓝图)均带空格。游戏内会渲染成 [PgUp]/[PgDn]调整远近。纯排版一致性,可忽略或顺手补齐。
  2. screen.anvilcraft.building_rod.left_click(左击 → 左键)是一枚死键:en_us(生成文件)、zh_tw / zh_hk / zh_meme 均无此键,Java 源码中也无任何引用(git grep left_click 仅命中进度/附魔的 left_click 字符串常量,与翻译键无关)。改动本身无害,但建议在 Weblate 源串清理后一并删除,避免持续出现无源词的翻译项。
  3. zh_cn 有 297 个键在 en_us 中不存在 —— 抽查确认绝大多数是 anvilcraft.configuration.*curios.* 等运行时动态生成的配置键(de_de 等语言同样存在),属历史遗留,与本 PR 无关,无需处理。
  4. zh_cn 中残留的 [Alt]Ctrl+Shift+AltCtrl+Z 硬编码与 en_us 逐字对应tooltip.anvilcraft.item.multitool...fluid_tank.break_*tooltip...building_rod.shift),非缺陷。

🟢 看起来不错

  • 占位符完整性全绿:对全文件 2824 键做 zh_head ↔ en_us 占位符签名比对,唯一差异tooltip.anvilcraft.fluid.amount%1$s / %2$s vs %s / %s,索引式与普通式语义等价,且非本 PR 改动)。本 PR 触及的 5 个键占位符数量与顺序全部匹配 en_us
    • distance:4 %s,对应 BuildingRodClient:551 传入的 4 个 key(...)
    • optimized:11 %s,对应 :560 的 11 个参数(放置/取消/六向移动/顺逆旋转/镜像顺序一致)
    • traditional.hint:6 %s,对应 :585tool+scroll / adjust+scroll / use+scroll
    • traditional.status%1$s…%6$s,对应 BuildingRodTraditionalOverlay:77 的 6 个参数
  • 多行化是正确方向:新值中的 \nod -c 确认是 JSON 转义(\+n,与 en_us 完全相同的编码方式),渲染侧 font.split(statusLine(...), maxWidth) / font.split(traditionalHint(), ...) 会正确按行拆分并逐行绘制,不会把 \n 当字面量渲染。
  • traditional.scroll 补键有效BuildingRodClient:584 确实调用该键,此前 zh_cn 缺失,本次补齐后中文界面不再回退英文 Scroll
  • 键序、缩进、en_us 对齐结构(optimized/hint/status 的三行布局与英文源逐段对应)保持一致,missing_tools 仅补尾逗号,未误改内容。

📋 声称验证表

声称(PR 描述) 状态 说明
Translations update from AnvilCraft Translate(zh_Hans 100%) 仅 zh_cn,+7/−6,新增 1 键,无丢行
占位符/参数一致性 5 个改动键与 en_us、调用点三方一致
多行显示 \n 转义正确 + 渲染侧已 split

结论: APPROVE — 纯翻译同步,diff 完整性、JSON 合法性、占位符数量与顺序、渲染适配均已逐项核实,无阻塞问题;两条 💡 仅为排版一致性与历史死键清理建议。

PR 标题:Translations update from AnvilCraft Translate — 描述准确且与该仓库历次 Weblate 同步 PR 的命名约定一致,无需修改(本地 gh auth status 显示 Gugle2308 的 token 已失效,按流程跳过标题变更,未尝试导出任何凭据)。


由 Hermes Agent 审查

@Gugle2308

Copy link
Copy Markdown
Collaborator Author

⚠️ Dangerous command requires approval:

curl -s "https://api.github.com/repos/Anvil-Dev/AnvilCraft/pulls/4935" -o /tmp/pr4935.json
grep -o '"sha": "[^"]*"' /tmp/pr4935.json | head -3
python3 -c "
import json
d=json.load(open('/tmp/pr4935.js...

Reason: script execution via -e/-c flag

Reply /approve to execute, /approve session to approve this pattern for the session, /approve always to approve permanently, or /deny to cancel.

@Gugle2308

Copy link
Copy Markdown
Collaborator Author

💾 Self-improvement review: Patched references/pr4935-round-tracking.md in skill 'weblate-pr-review' (1 replacement). · Patched references/diff-analysis-false-positives.md in skill 'weblate-pr-review' (1 replacement).

@Gugle2308

Copy link
Copy Markdown
Collaborator Author

代码审查摘要 — PR #4935

操作: synchronize(Translations update from AnvilCraft Translate,Weblate 自动同步)
范围: 1 个文件 / 37 行 diff / +7 −6 / 3 个 hunk —— 仅 src/main/resources/assets/anvilcraft/lang/zh_cn.json
分支: translate/1.21/1.6 (f2c36a3) → dev/1.21/1.6 (68d5f62)

✅ 完整性核对(全部通过)

检查 结果
diff 与远端一致性 patch-diff 的 head/base sha 与 git ls-remote 完全吻合;base→head 全文件 diff = PR diff(13 行变更),无截断/幽灵文件
JSON 语法 python3 -m json.tool 通过(head 与 base 均 OK),新增键的逗号补齐正确
EOF / 行尾 No newline at end of file = 0
键集 无键被删除;新增 1 键 building_rod.traditional.scroll
英文残留 变更值中仅存在 %s,无未翻译英文

✅ 占位符逐键核对(zh_cn ↔ en_us.json 生成的源)

en 占位符 zh 占位符 状态
building_rod.distance 4 4
building_rod.optimized 11 11
building_rod.traditional.hint 6 6
building_rod.traditional.status %1$s…%6$s %1$s…%6$s
building_rod.traditional.scroll(新) 0 0
building_rod.left_click 不存在于 en 0 ⚠️ 见下

换行结构也与源一致(distance 1↔1、optimized 2↔2、hint 1↔1、status 2↔2),全文件仅 1 处占位符差异(tooltip.anvilcraft.fluid.amount%s / %s vs %1$s / %2$s,语义等价,非本 PR 引入)。

🟢 看起来不错 —— 本 PR 实际修复了两个真实的本地化缺陷

对照 BuildingRodClient.java:551/560/584BuildingRodTraditionalOverlay.java:77 的调用点:

  1. building_rod.distance 旧值参数错位:旧串 "按住 [Ctrl] 固定投影距离,↑/↓ 调整远近 | %s 固定蓝图" 只有 1 个 %s,而代码传入 4 个参数(工具键 / 前进 / 后退 / 使用键)。MC 会把唯一的 %s 绑定到第 1 个参数(工具键),导致「固定蓝图」旁显示错误按键,且远近键被硬编码为 ↑/↓。新值改为 4 个 %s 并顺序正确(%s 工具键 → %s/%s 前进/后退 → %s 使用键)✅
  2. traditional.hint 旧值完全不使用占位符:旧串硬编码「Ctrl + 滚轮 / Alt + 滚轮 / 右击」,而代码传入 6 个参数(BUILDING_ROD_TOOLBUILDING_ROD_ADJUSToptions.keyUse 各自与 traditional.scroll 组合)。玩家一旦改键,中文提示即失效。新值 %s+%s 切换工具 %s+%s 调整\n%s 执行 %s 切换快捷栏 与 6 个实参一一对应 ✅

另外 optimizedstatus 的换行重排与 en 源的多行文本块一致,叠加层按行居中绘制不会错位。

💡 建议(非阻塞)

  • screen.anvilcraft.building_rod.left_click 是孤儿键:该键在生成源 src/generated/resources/.../en_us.json 中不存在,BuildingRodLang.java(datagen 定义处)未注册,对 PR head 全树 git grep left_click 也没有任何 Java 引用——仅 zh_cn.json:2746 独有。本次「左击 → 左键」的改动不会在任何界面生效。若源侧已弃用该键,建议后续清理;若仍有代码引用,请补上 en 源定义。
  • 新键被追加到文件末尾frost_smithing.* 之后),而其余 building_rod.* 集中在 2742–2765 行。JSON 无序,功能无影响,仅属 Weblate 写入位置的 diff 噪音,可不处理。
  • screen.anvilcraft.building_rod.traditional(同一界面的传统模式说明行)仍硬编码「滚轮」;en 源同样硬编码 Scroll,与本次新引入的 traditional.scroll 键设计不一致。本次 zh 与 en 保持一致,无阻塞,可反馈给源维护者统一。
  • 观察(与本 PR 无关):zh_cn 中约有 297 个键在生成版 en_us.json 中找不到对应项(多为 anvilcraft.configuration.*,看起来是配置界面迁移后的历史遗留),另有 1 个 en 键 tooltip.anvilcraft.item.ionocraft_backpack.shift 尚未翻译。属仓库历史债,建议单开清理 PR。

🧪 验证建议

在游戏内将 Building Rod: Select tool / Adjust tool(默认 Ctrl/Alt)重映射为其它按键,确认非传统模式与 F3-式提示行显示的键名随之变化且 4/6 个参数顺序正确——这是本次改动唯一需人工确认的点(en_us 的占位符顺序已可静态证明无误)。

结论: APPROVE — 纯 zh_cn 翻译同步,占位符数量/顺序/位置占位符/换行结构全部与英文源一致,JSON 合法、diff 完整,且顺带修复了 distance 与 traditional.hint 两处真实缺陷;无关键或警告级问题。

建议标题: Translations update from AnvilCraft Translate (zh_cn) 简体中文翻译更新(本次因 gh auth status 显示 token 失效未自动修改——修复认证后如需我可代为更新)。


由 Hermes Agent 审查

@Gugle2308

Copy link
Copy Markdown
Collaborator Author

💾 Self-improvement review: Patched references/pr4935-round-tracking.md in skill 'weblate-pr-review' (1 replacement). · Patched references/anvilcraft-lang-source-lookup.md in skill 'weblate-pr-review' (1 replacement).

@Gugle2308

Copy link
Copy Markdown
Collaborator Author

代码审查摘要 — PR #4935

操作: synchronize(Translations update from AnvilCraft Translate)
范围: 1 个文件(src/main/resources/assets/anvilcraft/lang/zh_cn.json),+13 / −11 行,无 Java/资源新增
分支: translate/1.21/1.6dev/1.21/1.6(base 4f77cc7,head f90aefb

审查方式:从 head/base 分别取完整文件zh_cn.json vs 生成源 src/generated/.../en_us.json)逐键对照,并回查 Java 调用点的实参个数(未依赖 diff 片段)。


✅ 已逐项核验通过

检查项 结果
JSON 结构 zh_cn.json 完整解析通过;末尾键补上了缺失的逗号frost_smithing.permutation.missing_tools),修掉了语法隐患
占位符一致性(en_us 逐键对照) building_rod.distance 4×%s、optimized 11×%s、traditional.hint 6×%s、traditional.status %1$s…%6$s,全部与 en_us 一致
占位符 ↔ Java 实参匹配 BuildingRodClient.java:551(4 参)/:560(11 参)/:585(6 参)、BuildingRodTraditionalOverlay.java:77(6 参)逐个吻合,不会出现 MissingFormatArgumentException
\n 编码 ✅ 字节级确认是 5c 6e(标准 JSON 转义 → 真实换行),无 5c 5c 5c 6e 三重转义
换行行数对齐源文本 building_rod.shift 旧 9 行 → 新 6 行,与 en_us 完全一致;status 3/3、optimized 3/3、breathing 2/2、recharge 2/2、ionocraft_backpack.shift 2/2 全部对齐
新增键存在性 building_rod.traditional.scroll("滚轮"/"Scroll")、tooltip.anvilcraft.item.ionocraft_backpack.shift 在 en_us 中存在且 Java 有引用点(BuildingRodClient.java:584
其它 ✅ 无英文残留、无值内重复词、无尾随空格、无简繁混用(本 PR 仅 zh_cn 单文件)

⚠️ 警告

  • tooltip.anvilcraft.item.building_rod.shift 首行与源文本不符(信息丢失)
    源文本(ItemTooltipManager.java:61 / 生成 en_us.json)首行是持有要求
    Hold in either hand alongside blocks, a filter, a fluid bucket or a structure disk
    而新 zh 首行写成了 批量放置方块、流体,建造蓝图 —— 这是同类 tooltip tooltip.anvilcraft.item.building_rod("批量放置方块与蓝图")的能力描述,在 .shift 视图里属于语义重复,同时丢掉了「需另一手持方块 / 过滤器 / 流体桶 / 结构盘」这一关键使用条件(旧 zh 首行是有这条的)。
    建议:首行改回/补齐持有要求,例如「任意手持建筑杖,另一手持方块、过滤器、流体桶或结构盘」。

💡 建议(非阻塞)

  • screen.anvilcraft.building_rod.distance%s/%s调整远近/ 与「调整」之间缺空格(en 为 %s/%s to adjust,旧 zh 为 ↑/↓ 调整远近)→ 建议 %s/%s 调整远近
  • tooltip.anvilcraft.equipment.recharge每秒耗电100 kFE 数字与中文间缺空格;同文件其它条目均加空格(「每次消耗 2 B」「每个方块消耗 100 FE」)→ 建议 每秒耗电 100 kFE
  • screen.anvilcraft.building_rod.left_click 是死键 — en_us 无此键、Java 全树无引用(仅 zh_cn.json 独有)。本次「左击→左键」的修改无害,但建议顺手清理或与源语言同步。
  • 历史漂移(非本 PR 引入) — zh_cn 中存在 297 个 en_us 未定义的键(多为 anvilcraft.configuration.* 旧命名,如 amulet_box_invert_override_action),另有 2 个 en_us 配置键在 zh_cn 缺失(anvilcraft.configuration.invert_fluid_port_bucket_action.tooltip,届时回退英文)。建议后续单独开一个清理 PR。

🟢 看起来不错

本次同步把三条 tooltip 从「逗号平铺」改为与源一致的多行结构breathingrechargeionocraft_backpack 拆出 .shift 行、distance/optimized/traditional.hint 的按键占位符化 %s),方向完全正确——这些 %s 化改动正好对应源码里已把硬编码 Ctrl/Alt/滚轮 文字改为按键绑定实参(BuildingRodClient.java:584 新增 traditional.scroll),翻译是跟随而非引入变更。

结论: COMMENT — 无阻塞性问题,占位符/换行/JSON 结构全部与源文本和 Java 调用点对齐,可直接合并;建议合并前顺手修掉 building_rod.shift 首行的信息丢失(唯一实质性偏差),其余为格式类小建议。

建议标题: Translations update from AnvilCraft Translate (zh_cn) 同步 zh_cn 翻译
(本应执行 gh pr edit,但 gh auth status 显示 token 已失效 → 未能自动修改;且按 webhook 约规不得导出 token,故仅在此给出建议。当前标题不算错,可保留。)


由 Hermes Agent 审查

@Gugle2308

Copy link
Copy Markdown
Collaborator Author

💾 Self-improvement review: Patched references/pr4935-round-tracking.md in skill 'weblate-pr-review' (1 replacement). · Patched references/pr4850-round-tracking.md in skill 'weblate-pr-review' (1 replacement).

@Gugle2308

Copy link
Copy Markdown
Collaborator Author

代码审查摘要 — PR #4935

操作: synchronize(Weblate 翻译同步,中英标题已确认:Translations update from AnvilCraft Translate)
范围: 1 个文件 / +13 −11 行 — src/main/resources/assets/anvilcraft/lang/zh_cn.json(仅简体中文)
校验结果: diff 完整(API changed_files=1 / additions=13 / deletions=11,与本地 patch-diff 逐行吻合,无静默截断);head commit 1d6017e 的最终文件成功 json.load(2823 个键),} 收尾正确,frost_smithing.permutation.missing_tools 的漏尾逗号已修好。

✅ 占位符 / 格式校验(逐参数对照 dev/1.21/1.6 源码,非仅对照 en_us)

key Java 实传参数 en_us zh_cn 新值 结论
screen.anvilcraft.building_rod.distance 4 个(BuildingRodClient.java:551 %s %s 真修复——旧值只有 1 个 %s,键位提示显示不全
screen.anvilcraft.building_rod.optimized 11 个(:565 11 11 ✅ 顺序与 en_us 一致(放置/取消/6×位置/2×旋转/镜像)
screen.anvilcraft.building_rod.traditional.hint 6 个(:585 6 6 ✅ 从硬编码 "Ctrl/Alt/右击/滚轮" 改为真实键位参数,与 en_us 同步
screen.anvilcraft.building_rod.traditional.status 6 个(BuildingRodTraditionalOverlay.java:77 %1$s…%6$s %1$s…%6$s ✅ 索引占位符完整
tooltip.anvilcraft.item.ionocraft_backpack(.shift) NORMAL/SHIFT 映射(ItemTooltipManager:425/944 无占位符 无占位符
  • \n 均为标准 JSON 转义 5c 6e(与 en_us 一致),非双重转义。
  • tooltip.anvilcraft.item.building_rod 新值结尾多了 \nTooltipUtil.translatedLines()split("\n"),Java 默认丢弃尾部空串 → 不会产生多余空行,安全。
  • 值内无连续重复词(防爆防爆类)、无英文残留、无 TODO/密钥/调试串。

✅ 新增 key 正确且必要

  • screen.anvilcraft.building_rod.traditional.scroll = "滚轮" — en_us = Scroll,代码 BuildingRodClient.java:584 实际使用 ✅
  • tooltip.anvilcraft.item.ionocraft_backpack.shift = "离开电网时…双击空格可取消缓降" — en_us 存在,且拆分(基础 tooltip 写"创造飞行"、.shift 写缓降说明)与 en_us 逐行对应 ✅

⚠️ 4 个 key 已不在源中,改动游戏内不可见(非阻塞)

tooltip.anvilcraft.equipment.breathingtooltip.anvilcraft.equipment.rechargetooltip.anvilcraft.item.building_rod.shiftscreen.anvilcraft.building_rod.left_click

  • 不在 dev/1.21/1.6 的生成源 src/generated/.../en_us.json 中(该文件由 ItemTooltipManager 的 NORMAL/SHIFT 映射经 datagen 产出);
  • 全树 git grep 除 zh_cn.json 外无任何引用(Java、数据包、zh_tw/zh_hk/lzh 均无);
  • 渲染路径只读 tooltip.<ns>.item.<path>[.shift]screen.*,这些 equipment.* 键无任何代码入口;
  • 现役键已改名:tooltip.anvilcraft.item.breathing_helmet / ..._chestplate / ..._pockets_leggings / ..._buffer_boots / ..._weatherproof_spacesuit_*;建筑杖长说明已迁至 item.anvilcraft.building_rod.desc/.controls/.energy/.fluids/.import
  • 旁证:dev/26.1/1.6 分支的 zh_cn 已不含这批键(上游已清理)。

→ 本次对这 4 处的改动(加 \n、"左击"→"左键")在游戏内不会显示。若确认废弃,建议顺手删除;若 Weblate 仍把它们当作可译字符串,说明 Weblate 组件的源文件配置已过期,需要重新指向 src/generated/.../en_us.json

💡 建议(非阻塞)

  1. zh_cn 目前缺 36 条 en_us 现存键(其中 27 条 tooltip.*),包括整套 weatherproof spacesuit(防水航天服)breathing_helmetpockets_leggingsbuffer_boots、三种重戟/谐振器、lens.shiftpower_converter_super_big/extremely_big。这些中文玩家现在看到的是英文——比本次修改的 4 个废弃键更值得补。
  2. zh_cn 中另有约 300 条 en_us 已不存在的陈旧键(如 iono_craft_backpack_*ionocraft_backpack_* 并存),建议与维护者一起做一次清理。
  3. tooltip.anvilcraft.item.ionocraft_backpack.shift 中 "双击空格可取消缓降" 对应 en_us "Double-tap Jump to toggle slow falling"——en 是可切换(toggle),zh 表述为"取消"。属可接受的意译,如需严格对应可改为"双击空格可切换缓降"。

🟢 总体评价

本次改动未引入任何 bug,占位符/参数数量键键核对通过,且修好了 building_rod.distance 占位符不全的真实显示缺陷,新增的两个键均为现役键、翻译准确("左键"用词也比旧"左击"更贴切)。废弃键改动是无副作用的空转(no-op)。

结论: COMMENT(可合并) — 建议合并;同时建议后续 PR 补上现役未翻译键并清理陈旧键。

已尝试按规范更新 PR 标题(英文+中文),但 gh auth status 显示 token 已失效(The token in /opt/data/home/.config/gh/hosts.yml is invalid),故未自动修改。建议标题: Translations update from AnvilCraft Translate (zh_cn) 简体中文翻译同步(当前标题未标明语言范围)。


由 Hermes Agent 审查

@Gugle2308

Copy link
Copy Markdown
Collaborator Author

💾 Self-improvement review: Patched SKILL.md in skill 'weblate-pr-review' (1 replacement).

Currently translated at 100.0% (2556 of 2556 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (2555 of 2555 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (2555 of 2555 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (2555 of 2555 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (2528 of 2528 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (2527 of 2527 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (2527 of 2527 strings)

Co-authored-by: Fff_ff <a181084170@163.com>
Co-authored-by: OpenAI <noreply-mt-openai@weblate.org>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: 鸽の念 <635035765@qq.com>
Translate-URL: https://translate.anvilcraft.dev/projects/anvilcraft/1-21-1-6/zh_Hans/
Translation: Anvil-Dev/AnvilCraft/1.21/1.6
@Gugle2308

Copy link
Copy Markdown
Collaborator Author

代码审查摘要 — PR #4935(Weblate 翻译同步,累积世代 fc7f6f96

操作: synchronize → 全量审查
范围: 1 文件 src/main/resources/assets/anvilcraft/lang/zh_cn.json(168 行 / 17261 字节 / 7 hunks / +63 −24
标题: Translations update from AnvilCraft Translate — 与该仓库历次 Weblate PR 命名一致,无需修改

📐 硬数字与完整性双证

diff md5 fc7f6f9656d420b33199c0786875fab1 / sha256 a19b5063ff09…57fb新内容世代,非重推)
API 对账 changed_files=1 / additions=63 / deletions=24 与 diff 逐行吻合 ✅
更强证据 diff index 6583bae59c..7bce4fe4ae 与本地两侧文件 git-blob 逐字节吻合 ✅(diff 无截断、取数无误)
head zh_cn 242582 字节 / 2862 keys / blob 7bce4fe4ae
base zh_cn 238520 字节 / 2823 keys / blob 6583bae59c(= base.sha 8aba6d83dev/1.21/1.6 tip 同值 ✅)
en_us 2557 keys,head == base 逐字节相同 → 本 PR 只改 zh_cn,en_us 即权威源
净变化 相对上一轮 head(238199 字节)+4383 字节 / ≈ +37 keys
⚠️ 口径 累积 diff:含前几轮已审过的 hunk(building_rod 占位符修复、round4 内容),非本 push 增量

结构面全过: JSON 合法 ✅ / 重复键 0 ✅ / 无尾逗号、} 结尾 ✅ / 39 个新键全部在 en_us 有源(缺失 0/39)✅ / 本 PR 触碰键占位符与 en 0 差异 ✅ / 换行编码单反斜杠 ✅ / 无删键、无丢字回归 ✅


⚠️ 需修正(本 PR 新增内容)

  1. tooltip.anvilcraft.item.nature_amulet 多出不存在的「羽毛护符」 — en 源 Combines Silence, Cat, Dog, and Armadillo Amulet effects(4 个),zh 新值写「寂静、猫、狗、羽毛和犰狳」(5 个)。代码铁证:PermutationRecipeLoader.java:79 的合成输入恰为 SILENCE + ARMADILLO + CAT + DOG(无 FEATHER)⇒ 译文宣称了物品没有的效果。删掉「羽毛和」即可(旧值本来就错在含羽毛,本轮补了犰狳却漏删)。
  2. tooltip.anvilcraft.item.sapphire_amulet 漏译整段条件 — en Grants Conduit Power; Resistance I in water **or with a Breathing Helmet or Weatherproof Spacesuit Helmet**,zh 只有「在水中抗性提升」,丢掉另外两种触发方式,且 Resistance I 的等级也丢了。
  3. tooltip.anvilcraft.item.lens.shift 三行全部漏译(新键,源在 ItemTooltipManager.java:93-95)— 三行都带核心碎片矿/虚空石的特殊行为说明(including Core Shard Ore and Void Stone / …also convert to EXP / …have no smelted form and remain unchanged),zh 三行全部丢失,玩家看不到这两类方块在三种镜片下的差异。
  4. tooltip.anvilcraft.item.anvil_amulet 术语错误 — 「锻造砧天体引力」;官方译名 block.anvilcraft.celestial_forging_anvil = 「锻星砧」(先例计数:锻星砧 33 处 / 锻造砧 1 处 = 本键)→ 应为「锻星砧的天体引力」。

⚠️ 顺带发现(非本 PR 引入,建议另开修复)

  1. tooltip.anvilcraft.item.power_converter_middle / _big 显示数值错误 — 代码五个转换器的 en 源全部consumes %d kW,经 NORMAL_ARGUMENTSINPUT_TIME(实测 small=1 / middle=16 / big=256 / super_big=4096 / extremely_big=65536)。zh 旧 3 键把数值写死并丢了 %d:middle 写「6 kW」(应 16)、big 写「36 kW」(应 256)→ 玩家看到错误功率。本 PR 新增的 _super_big / _extremely_big 两个键正确使用了 %d ✅ —— 正可作旧 3 键的修正范例。

💡 建议(术语/排版统一)

  • abnormal_amulet「漂浮粉末」↔ 物品名「飘浮粉」(全库 飘浮粉 4 / 漂浮粉末 1),建议统一为物品名。
  • 同一 en 句 Supplies oxygen underwater and in vacuum 出现三种译法:「提供氧气」/「供应氧气」/「供氧」。
  • 三个谐振器 en 完全相同,zh 却分「切换模式。」/「更改模式。」/「切换模式,…」(连标点都不一致)→ 统一。
  • 数字排版:新键 item.buffer_boots「最高可达4格高度」vs 同批 weatherproof_spacesuit_boots「最高可达 4 格高度」。
  • [左Shift](2 处新值)vs 既有键的「Shift」(19 处)→ 择一统一。
  • 等级数字漏写:ruby_amulet 写了「力量 II」却漏 Strength I 的 I;topaz_amuletHaste Isapphire_amuletResistance I
  • structure_disk.size 用半角 x,本文件其他尺寸用「×」。
  • feather_amulet:en 源自身矛盾(immunity to … Slow Fallingholding Shift removes Slow Falling)→ 建议上游澄清。
  • 死键(定级 💡):本 PR 新引入孤儿 0 个(base 306 = head 306 ✅);但有 2 处改动落在死键上 —— tooltip.anvilcraft.equipment.breathing / .recharge:该前缀 7 个键在 en_us 中全部不存在(上游已改名 item.*,现役键 item.breathing_helmetitem.buffer_bootsitem.pockets_leggingsitem.weatherproof_spacesuit_* 已在本 PR 补全)。建议在 Weblate 端清理废弃源串,否则每轮同步都在维护死键。

🟢 看起来不错

  • 11 个护符 tooltip 从「只有一句笼统描述」扩充为与 en 完整对齐(cat/dog/emerald/silence/feather/anvil/ruby/nature 等),其中 9 条逐句准确 —— 这是本轮最大的质量提升。
  • structure_disk.size1 个 %s 补为 3 个 ✅ 与 StructureDiskItem.java:46 传的三实参吻合,修好了只显示 X 尺寸的问题。
  • building_rod.{distance, traditional.hint, traditional.status, optimized} 的「按键硬编码 → %s 占位符」修复保持,调用点实参 4/6/6/11 逐一对齐。
  • 新键 power_converter_{super_big,extremely_big}%d 而非写死数值 —— 正确做法。
  • weatherproof_spacesuit_{helmet,chestplate,leggings,boots} 4 键与 en 段数逐条对齐(5/5、3/3、4/4、4/4)、占位符一致。

📋 跨 PR 已知未修项逐 key 重对(本轮 首次完整执行

9/9 清单项 + 8 项在册项全部仍存在,0 项闭环。 明细(现值均为本轮 head):

现值 vs 源 判定
transcendence_grindstone.modifier_slot.tooltip 漏 small 「空的(大型)储罐」vs empty small or large fluid tanks ⚠️ 仍在
cfa.megastructure.eco_station.usage 同译 产出两行均「行星生物资源」(en items / fluids ⚠️ 仍在
cfa.megastructure.temple.usage 方向译反 神赐与天罚」vs Offerings and punishments ⚠️ 仍在
item.black_white_chocolate_block 双逗号 「制作**,,**踩上去」 ⚠️ 仍在
cfa.megastructure.dyson_sphere_brown_dwarf.usage 英文残留 「需求**:」「产出:**」半角 + Side Effects: ⚠️ 仍在
cfa.evolution.phase.nondegenerate_core_helium_burning 「非简并核心燃烧」vs Helium Burning ⚠️ 仍在
cfa.evolution.phase.pre_white_dwarf 原氦白矮星」vs Pre-white Dwarf ⚠️ 仍在
cfa.evolution.phase.bare_core_wr 「沃尔夫拉叶星」vs Bare-core WR(漏「裸核」且与 wolf_rayet 撞词) ⚠️ 仍在
key.anvilcraft.building_rod_adjust / _tool 同值 均「建筑杖:选择工具(滚轮)」(en Select / Adjust) ⚠️ 仍在(建议 adjust 改「调整参数(滚轮)」)
item.anvilcraft.building_rod.desc+15 block reach 且与 tooltip…building_rod 同值 ⚠️ 仍在
item.local_terminal 动态连接 32 方块范围内」→ 缺 nearest 多「动态」 💡 仍在
screen…building_rod.optimized Move → 「位置 💡 仍在
hud_scale.tooltip Hud 的缩放程度」 💡 仍在
item.building_rod.fluids vs …building_rod.shift 无限流体」vs「可再生流体」(en 双侧 renewable 💡 仍在
item.ionocraft_backpack(.shift) 「双击空格可取消缓降」(en toggle)+ 同串「缓慢降落/缓降」并用 💡 仍在
structure_scanner.normalized en 有 zh 无,base 亦无 → 历史欠翻译 💡 非本 PR
孤儿键 base 306 = head 306,本 PR 新引入 0

✅ 已闭环(表扬): building_rod.shift「放行拒绝列表」措辞(随源删除)/ ionocraft_backpack creative 吞词 / buffer_boots.charged%2$s / equipment.buffer_boots「三倍高度」/ storage.flip 补译 —— 均保持在位。


结论: COMMENT — 结构面(JSON / 占位符 / 键完整性 / 换行编码)全部通过,且本轮把历史上一直缺失的「跨 PR 已知未修项逐 key 重对」补做完毕;但本 PR 新内容存在 4 项 ⚠️nature_amulet 多出羽毛、sapphire_amulet 漏条件、lens.shift 三行漏译、anvil_amulet 术语错误)与若干 💡 统一项,合并前建议在 Weblate 侧一并修正;另发现 2 项非本 PR 引入但真实存在的问题(power_converter_middle/big 显示数值错误、equipment.* 7 个死键),建议另开清理/修复。

已将本轮硬数字(diff md5 fc7f6f96…、head blob 7bce4fe4ae、2862 keys)、5 项新发现与「清单重对 9/9 仍存在」结论写入 references/pr4935-round-tracking.md,下一轮可用 md5sum 瞬时判重、避免重复展开。

由 Hermes Agent 审查

@Gugle2308

Copy link
Copy Markdown
Collaborator Author

💾 Self-improvement review: Patched references/pr4935-round-tracking.md in skill 'weblate-pr-review' (1 replacement). · Patched references/pr4850-round-tracking.md in skill 'weblate-pr-review' (1 replacement). · Patched references/diff-file-identity-and-head-reconciliation.md in skill 'pr-diff-scope-reconciliation' (1 replacement).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants