Skip to content

feat(game): HireRPG 中英双语 i18n(同一链接 / 自动识别 / 手动切换) - #33

Merged
realRoc merged 1 commit into
mainfrom
feat/game-i18n
Jun 1, 2026
Merged

feat(game): HireRPG 中英双语 i18n(同一链接 / 自动识别 / 手动切换)#33
realRoc merged 1 commit into
mainfrom
feat/game-i18n

Conversation

@realRoc

@realRoc realRoc commented Jun 1, 2026

Copy link
Copy Markdown
Owner

做了什么

把站内小游戏 docs/game.html 整体 i18n 化,满足三点:同一链接、自动识别语言、可手动切换。复用主站 githire-lang localStorage 键,与 index/blog/skill 的语言选择互通。

实现

  • 语言引擎:文件顶部自带引擎。识别顺序 ?lang=localStorage(githire-lang)navigator.languagezh 开头→中文,否则英文)。导航栏新增 中 / EN 切换按钮,切换即持久化并即时重渲染;<head> 的 title / meta / og 按语言切换(zh 为 HTML 默认)。
  • 数据分语言化:怪兽 / 题库 / 区域 / 进区横幅 / 告示牌·NPC 对话 / 宝箱道具 / 图鉴扩展文案,全部拆成「语言无关的几何·样式」+「分语言文本表」(MONSTER_DEF+MONSTER_TXQUESTION_TXREGION/BAND_TXIT_TXITEM_TXCODEX_TX)。inventory 只存 {key,count,equipped},名称由 itemText(key) 运行时解析,避免语言切换后残留旧语言。
  • 进度无损切换buildLocalizedData() 组装 MONSTERS/QUESTIONS/REGIONS/REGION_BANDSlocalizeWorld() 在切换时原地重建 WORLD.interactables/buildings 文本,保留 HP / 已击败怪物 / 宝箱开启状态 / 玩家位置。
  • 全部 UI 字面量(约 120 条 + 22 道题)改走 t(key, params) 字典并补齐英文翻译。
  • 顺带把运营物料目录 growth_marketing/(本地工作区)加入 .gitignore

测试

浏览器(gstack browse + 本地 http server)实测,零 console 报错:

  • 标题屏 / 地图·HUD / 战斗(含战斗中切换语言即时重渲染)/ 答题反馈 / 胜利屏(道具栏 + 复活记录按 key 正确双语解析)/ 图鉴详情 / Game Over —— 中英文均正确。
  • 语言切换持久化(localStorage + <html lang>),刷新后保持;?lang=en 直达英文。

范围

  • 不改任何游戏玩法 / 关卡 / 美术,纯文案 + 语言层。
  • 未包含 agent 工具产物(.claude/.github/skills/),与本功能无关。

🤖 Generated with Claude Code

game.html 整体 i18n 化,复用主站 githire-lang localStorage 键:
- 语言识别 ?lang= → localStorage → navigator.language(zh→中文,否则英文)
- 导航加 中/EN 切换按钮,切换即持久化并即时重渲染;head title/meta 按语言切换
- 数据结构拆「语言无关几何/样式」+「分语言文本表」:MONSTER/QUESTION/
  REGION/BAND/IT/ITEM/CODEX_TX;inventory 只存 key,名称运行时 itemText() 解析
- buildLocalizedData() 组装 MONSTERS/QUESTIONS/REGIONS/REGION_BANDS;
  localizeWorld() 切换时原地重建交互物/建筑文本,保留进度(HP/已击败/宝箱/位置)
- 全部 UI 字面量(约 120 条 + 22 题)改走 t() 字典并补齐英文翻译
- 浏览器实测:标题/HUD/战斗(含战斗中切换即时重渲)/答题/胜利(道具+复活记录
  按 key 双语解析)/图鉴/gameover 全双语零报错

chore: 运营推广物料目录 growth_marketing/ 加入 .gitignore(本地工作区,不入库)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@realRoc
realRoc merged commit 854e9d0 into main Jun 1, 2026
1 check passed
@realRoc
realRoc deleted the feat/game-i18n branch June 1, 2026 09:29
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.

1 participant