feedback7 stats: the local statistics page, ported from PR #323 by @2321Robin as submitted (record store ui/stats.js, viewer screens/stats.js, stats.css, entries on the title / lobby / room screens, 20 tests); golden: unchanged

- public/js/ui/stats.js: one record per finished match in localStorage (sp.pref.stats, envelope {v, records}, at most
  1000, quota shrink of the oldest), content-id dedupe of the lobby's result replay, a MIGRATIONS chain and
  normalizeRecord (defaults for missing fields, unknown fields kept, a newer envelope refused), merge-by-id export /
  import, aggregateStats.
- public/js/screens/stats.js: the viewer (总览 / 策略 / 称号 / 战斗累计 / 最近对局, a row re-views that match's
  settlement), 导出 / 导入 / 清空.
- Applied from the PR's own diff after reading it in full (no network, no new dependency, server untouched); only the
  UI strings of the page are added to the four packs (en from the PR; ja / ko / zh-TW translated for this commit).
- The follow-up commits rework the page (the counting rule for matches left early, storage bounds, the layout).
- Tests: test/ui/stats.test.js 20 / 20; i18n extract 0, check --all --strict clean.
This commit is contained in:
2321Robin authored and sganggs committed 2026-10-08 20:05:09 +08:00
1 parent ae22335cfe
commit 438a6b521a
13 files changed
+1407 -5

No files matched your search

+42 -1
View File
@@ -1055,5 +1055,46 @@
"选择「{name}」的朝向": "Choose {name}'s facing",
"选择朝向": "Choose a facing",
"朝向:{dir}": "Facing: {dir}",
"开发版 · 不稳定,请勿用于公开服务器": "Development build · unstable, not for public servers"
"开发版 · 不稳定,请勿用于公开服务器": "Development build · unstable, not for public servers",
"统计数据": "Statistics",
"统计": "Stats",
"对局进行中,暂不能回看历史结算": "A match is running — replays are unavailable right now",
"总览": "Overview",
"总局数": "Games",
"胜场": "Wins",
"胜率": "Win rate",
"到达隐秘核心": "Hidden Core reached",
"通关隐秘核心": "Hidden Core cleared",
"最远回合": "Best round",
"累计时长": "Time played",
"{n} 分": "{n} min",
"难度": "Difficulty",
"局数": "Games",
"隐秘核心通关": "Hidden Core clears",
"使用局数": "Used",
"通过局数": "Cleared",
"通过率": "Clear rate",
"称号": "Titles",
"战斗累计": "Combat totals",
"最近对局": "Recent matches",
"时间": "Time",
"模式": "Mode",
"结果": "Result",
"点击查看该局结算": "View this match's settlement",
"单人": "Solo",
"同盟": "Co-op",
"胜": "Win",
"负": "Loss",
"点击任意一行,回看该局结算。": "Click a row to re-view that match's settlement.",
"已导出 {n} 条对局记录": "Exported {n} match records",
"已导入 {added} 条记录{tail}": "Imported {added} records{tail}",
"(跳过重复 {skipped} 条)": " ({skipped} duplicates skipped)",
"没有新记录(全部与现有数据重复)": "Nothing new (everything already exists)",
"导入失败:不是有效的统计导出文件": "Import failed: not a valid stats export file",
"已清空本机统计数据": "Local stats cleared",
"确认清空?": "Clear for sure?",
"本机数据 · 仅记录本浏览器中你参与的对局": "Local data · only matches you took part in, in this browser",
"检测到更新版本的统计数据,请先升级客户端再查看,以免覆盖数据。": "Stats data from a newer version detected — upgrade the client before viewing, or the data could be overwritten.",
"还没有记录 —— 完成一局对局后,这里会开始积累。": "No records yet — finish a match and the page starts filling in.",
"未知": "Unknown"
}