Skip to content

Ax93: copy review, round 1 (English first) - #439

Merged
momomojun merged 3 commits into
mainfrom
a/Ax93-copy-review
Oct 28, 2026
Merged

momomojun merged 3 commits into
mainfrom
a/Ax93-copy-review

Conversation

@Carry3

@Carry3 Carry3 commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Part of #437

Round 1 of the copy review, English first (judges read the English site), then the matching fixes in zh and es. Only changed lines are touched in the message files (no reordering or reformatting). No keys of the follow feature, pitch/board labels or turning-point list/card tags were edited, because #435 is changing them now; they are listed below for round 2.

Term decisions

Concept Chosen Notes
The moment the game turned turning point "Pivot" stays the product name only. Replaced "pivot" in what-if, detail, AI log, key moments, chart, overlay and controls copy.
The lab / feature What if… as the question, what-if as a noun or adjective (the what-if lab, a what-if) Tab label "What if" unchanged.
AI record AI work log Replaced "AI log" (top bar) and "Agent trace" (page kicker, loading/error); "agent activity" became "AI activity".
Line-ups Line-ups (British) Already consistent.
xG "Expected goals (xG)" on first use / definitions, "xG" elsewhere; "xG conceded" (not "allowed")
teammate teammate "team-mate" fixed.
Woodwork Hit the woodwork Shot list said "Hit the post", the shot map "Hit the woodwork".
Back line Back-line height, Pressing distance, Threat created Metric labels now match the Team stats table.
Apostrophes straight ' 42 straight vs 4 curly in en; the 4 curly ones made straight. Curly double quotes around ids kept.
Separators no · chains in UI text Replaced with commas/colons in tooltips and titles.

Notable changes (en)

Key Before After
hub.failed The matches could not be loaded. Is the API running? The matches could not be loaded. Try again in a moment.
hub.hist.note Every league game of matchdays {from}–{to}, {n} in all, from the season file Every league game of matchdays {from}–{to}: {n} in all
hub.results.alt …simulated {n} times, each with its own seed …simulated {n} times, each run playing out differently
hub.sched.runs Predictions: each game played {n} times from kick-off by the simulator Predictions: the simulator plays each game {n} times from kick-off
rp.src.* (10 keys) e.g. each shot's xG (/shots); split by source and big chances (/analysis) each shot's xG, split by source and big chances (endpoint paths, "verifier's", "fixed seed" removed)
viz.shots.tip {minute} · {player} · {outcome} · xG {xg} {minute}, {player}: {outcome}, xG {xg}
top.trace AI log ({n}) AI work log ({n})
trace.kicker Agent trace AI work log
trace.judge.yes Turning point · severity {n} Turning point, severity {n}
trace.outcome.rejected Not a pivot Not a turning point
trace.judge.unavailable …the detector's call is used …the momentum alarm's call stands
trace.status.ok ok OK
detail.notFound.title Pivot not found Turning point not found
whatif.back ← Pivot {minute}′: {headline} ← Turning point {minute}′: {headline}
whatif.runsNote …with the same seed… …from the same random start…
whatif.fine …Both halves of each pair share a seed… …start from the same random draws…
whatif.failed.rejected …for this pivot ({status}). …for this turning point (error {status}).
post.whatIfNone What-if needs a pivot to start from… A what-if needs a turning point to start from…
keys.toPivot Pivot {n} Turning point {n}
chart.label Momentum chart. Pivots: {list}. Momentum chart. Turning points: {list}.
clip.banner.* GOAL / RED CARD / PENALTY Goal / Red card / Penalty (no all-caps)
overlay.kicker Pivot · Momentum → {team} Turning point: momentum swings to {team}
rp.titleLive / lc.an.title Live numbers · up to {minute}′ Live numbers up to {minute}′ / Live centre, up to {minute}′
rp.dsv.match etc. Real score {score}… Final score {score}…
rp.pf.take {team} at the {v}th percentile {team} at percentile {v} (no wrong ordinals like "22th")
rp.pl.take {name} made the most… {name} created the most…
lu.subsNote Compare xG, xG conceded and field tilt in the windows… (machine-like, 4 sentences) Tightened to 2 sentences
metric.momentum_avg Momentum avg (home +) Average momentum (home positive)
pre.stat.gf_avg Goals scored a game Goals scored per game
pre.tie.former_coach Old coach / Old player Former coach / Former player
detail.flagged Marked, undo Flagged (undo)
top.player.empty No player matches No players match
startup.server.body It answered with an error (HTTP {status})… It returned error {status}, so the match data could not be loaded.

Counts

  • en: 105 strings changed
  • zh: 41 (mirrored separator/endpoint/seed fixes; spaces between Chinese and Latin team/player names per Bx20: 中文赛前句子里,英文名字和数字前后加空格 #359 convention in 13 strings, incl. the what-if questions)
  • es: 37 (mirrored fixes; "Rastro de agentes" → "Registro de trabajo de la IA"; banners out of all-caps)
  • Tests updated where they asserted exact strings (7 test files). No server strings changed: template.py / languages.py en/zh/es fallback and comparison phrases read fine. README not touched.
  • Video script: no quoted string changed.

Skipped for round 2 (being changed by #435)

  • follow.*, player.* (★ Following card, e.g. player.passes "Passes · accuracy"), spot.*
  • board.* (e.g. board.latest "Latest pivot · {minute}′", board.watching, board.pivots, board.noSwingLede, board.legend, board.keys, board.halfTime)
  • moments.*, open.*, pivot.*, pivots.*, stamp.* (incl. stamp.rejected "Not a pivot"), post.pivots, post.pivotsNote, story.*, detail.pitch*, detail.noDraw, detail.outside, detail.focusNote
  • zh: follow.team, follow.teamOff, follow.stop (missing spaces around names)
  • Also left for later: wi.an.m.seeds (analyst method still says "seed"), en apostrophes are now straight; zh/es quote style not reviewed, README intro ("95 %" spacing).

Verify

  • pnpm run lint and pnpm exec vitest run in apps/web: 410 passed.

🤖 Generated with Claude Code

Carry3 and others added 3 commits October 27, 2026 21:01
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… around names)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…and the description use it)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Carry3

Carry3 commented Oct 28, 2026

Copy link
Copy Markdown
Contributor Author

@momomojun 英文文字检查第一轮:英文 105 条、中文 41 条、西语 37 条,统一了术语(turning point、what-if、Line-ups、xG conceded 等),去掉了界面上漏出的接口路径和 seed 这类内部词,片段横幅不再全大写,百分位不再出现「22th」。视频脚本引用的文字没变。「AI log」保持短的叫法,没改成「AI work log」(顶栏宽度、README 都用这个)。410 个测试通过,检查通过麻烦帮忙合。关注球员那块的文字第二轮再查。

@momomojun
momomojun merged commit ad4405f into main Oct 28, 2026
5 checks passed
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