fix: EN切换失效、删除贡献者描述、版本按演进线分组(2D->3D)

- fix(i18n): composition 模式下响应式 locale 在 i18n.global 上(非 i18n.locale),
  loadLocaleAsync 与 useI18nLazy 改用 i18n.global.locale;
  useI18nLazy.current 改为派生自全局 locale 的 computed(单一数据源);
  各组件 useI18n() 加 useScope:'global' 确保读到同一 composer。
  headless 验证:默认中文(不下载EN chunk)->点EN加载en.[hash].js并切英文->切回中文 全通过
- content: 删除 MobileGame 概览中「主要贡献者 Zikai Wang... Hongxiang He...」句子
- timeline: 版本数据改为多演进线并行(zikai-ui/main/doby/roll-a-ball),
  每线带 2D/3D 形态标记,3D 线前显示「形态转变:2D -> 3D 滚球」转折标记
This commit is contained in:
Zikai
2026-07-12 15:03:04 +00:00
parent 15af291da0
commit e8dee338ed
11 changed files with 273 additions and 105 deletions

View File

@@ -1,92 +1,155 @@
// 448 各版本数据(来自对构建产物与 index.html 的分析)
//
// 项目是多条线并行演进的且经历了「2D -> 3D 滚球」的形态转变:
// - zikai-ui 线0.0.0 -> 0.0.32D 角色控制器,键盘控制生命/能量,最终改 WASD
// - main 线0.0.0 -> 0.0.12D 角色控制器,升级 Unity加屏幕按键
// - doby 线0.0.02D 平台跳跃Hongxiang He
// - roll-a-ball 线0.0.23D 滚球,陀螺仪操控 —— 项目从 2D 转向 3D 的最终形态
//
// track 字段标识所属演进线form 标识 2D/3Dorder 用于时间线排序(按发布先后)。
export const tracks = [
{
id: 'zikai-ui',
name: { zh: 'zikai-ui 角色控制器', en: 'zikai-ui Character Controller' },
form: '2D',
desc: {
zh: '迭代次数最多的线。2D 角色带生命/能量属性操作方式从鼠标、QWER/ASDF 键盘最终改为 WASD。',
en: 'The most iterated line. A 2D character with health/power stats; controls evolved from mouse, QWER/ASDF keys, finally to WASD.'
}
},
{
id: 'main',
name: { zh: 'main 角色控制器', en: 'main Character Controller' },
form: '2D',
desc: {
zh: '2D 角色控制器,从 Unity 2020 升级到 2021新增屏幕按键与跳跃。',
en: '2D character controller; upgraded Unity 2020 -> 2021, added on-screen buttons and jump.'
}
},
{
id: 'doby',
name: { zh: 'DobyAdventure', en: 'DobyAdventure' },
form: '2D',
desc: {
zh: '2D 横版平台跳跃,吃金币、计分、血量、触屏摇杆。',
en: '2D side-scrolling platformer: collect coins, score, health, touch joystick.'
}
},
{
id: 'roll-a-ball',
name: { zh: '3D 滚球(最终形态)', en: '3D Rolling Ball (Final Form)' },
form: '3D',
desc: {
zh: '项目从 2D 转向 3D 的最终形态。手机陀螺仪倾斜操控滚球,含雪花砖掉落、黄色砖弹跳等机制。',
en: 'The final form as the project shifted from 2D to 3D. Tilt the phone to roll the ball; snowflake bricks fall, yellow bricks bounce.'
}
}
]
export const versions = [
// zikai-ui 线
{
id: 'zikai-0.0.0',
series: 'zikai-ui',
track: 'zikai-ui',
version: '0.0.0',
unity: '',
unity: '-',
product: 'My project / 1.0.2',
webgl: '/448/zikai-0.0.0/',
apk: null,
control: { zh: '鼠标左键操作、右键追踪', en: 'Left mouse: operate, Right mouse: track' },
note: { zh: '早期鼠标控制原型', en: 'Early mouse-controlled prototype' }
note: { zh: '早期鼠标控制原型', en: 'Early mouse-controlled prototype' },
order: 1
},
{
id: 'zikai-0.0.1',
series: 'zikai-ui',
track: 'zikai-ui',
version: '0.0.1',
unity: '2020.3.30f1',
product: 'zikai-ui / 1.0.2',
webgl: '/448/zikai-0.0.1/',
apk: '/448/zikai-0.0.1/zikai.apk',
control: { zh: '生命 Q/W/E/R、能量 A/S/D/F', en: 'Health Q/W/E/R, Power A/S/D/F' },
note: { zh: '引入生命/能量属性系统', en: 'Introduced health/power stat system' }
note: { zh: '引入生命/能量属性系统', en: 'Introduced health/power stat system' },
order: 2
},
{
id: 'zikai-0.0.2',
series: 'zikai-ui',
track: 'zikai-ui',
version: '0.0.2',
unity: '2020.3.30f1',
product: 'zikai-ui / 1.0.2',
webgl: '/448/zikai-0.0.2/',
apk: '/448/zikai-0.0.2/zikai.apk',
control: { zh: '同 0.0.1', en: 'Same as 0.0.1' },
note: { zh: '构建产物重命名整理', en: 'Build artifact renaming' }
note: { zh: '构建产物重命名整理', en: 'Build artifact renaming' },
order: 3
},
{
id: 'zikai-0.0.3',
series: 'zikai-ui',
track: 'zikai-ui',
version: '0.0.3',
unity: '2020.3.30f1',
product: 'zikai-ui / 1.0.2.5',
webgl: '/448/zikai-0.0.3/',
apk: '/448/zikai-0.0.3/zikai.apk',
control: { zh: 'WASD 移动、J 跳跃、K 飞行(测试)', en: 'WASD move, J jump, K fly (testing)' },
note: { zh: '改为 WASD 操作,最新版', en: 'Switched to WASD, latest version' }
note: { zh: '改为 WASD 操作,本线最新版', en: 'Switched to WASD, latest of this line' },
order: 4
},
// main 线
{
id: 'main-0.0.0',
series: 'main',
track: 'main',
version: '0.0.0',
unity: '2020.3.30f1',
product: 'zikai-main / 1.0.2.6',
webgl: '/448/main-0.0.0/',
apk: '/448/main-0.0.0.apk',
control: { zh: '角色控制器', en: 'Character controller' },
note: { zh: '基线版本', en: 'Baseline' }
note: { zh: '基线版本', en: 'Baseline' },
order: 2
},
{
id: 'main-0.0.1',
series: 'main',
track: 'main',
version: '0.0.1',
unity: '2021.3.12f1',
product: 'beta / 1.0.2',
webgl: '/448/main-0.0.1/',
apk: '/448/main-0.0.1/zikai.apk',
control: { zh: 'WASD 移动、K 跳跃', en: 'WASD move, K jump' },
note: { zh: '升级 Unity新增屏幕按键', en: 'Upgraded Unity, added on-screen buttons' }
},
{
id: 'ball',
series: 'roll-a-ball',
version: '0.0.2',
unity: '2021.3.12f1',
product: '3dRoingBallt2 / 0.0.2',
webgl: '/448/ball/',
apk: '/448/203wangz199.apk',
control: { zh: '手机陀螺仪倾斜移动、上倾/点击跳跃', en: 'Tilt phone to move, tilt up/tap to jump' },
note: { zh: '最终版本3D 滚球', en: 'Final version, 3D rolling ball' }
note: { zh: '升级 Unity新增屏幕按键', en: 'Upgraded Unity, added on-screen buttons' },
order: 5
},
// doby 线
{
id: 'hongXiang-0.0.0',
series: 'doby',
track: 'doby',
version: '0.0.0',
unity: '2021.2.10f1',
product: 'DobyAdventure',
webgl: null,
apk: '/448/hongXiang-0.0.0/2D game.apk',
control: { zh: 'A/D 移动、跳跃、吃金币', en: 'A/D move, jump, collect coins' },
note: { zh: '2D 平台跳跃Hongxiang He', en: '2D platformer (Hongxiang He)' }
note: { zh: '2D 平台跳跃', en: '2D platformer' },
order: 3
},
// roll-a-ball 线3D项目形态转变
{
id: 'ball',
track: 'roll-a-ball',
version: '0.0.2',
unity: '2021.3.12f1',
product: '3dRoingBallt2 / 0.0.2',
webgl: '/448/ball/',
apk: '/448/203wangz199.apk',
control: { zh: '手机陀螺仪倾斜移动、上倾/点击跳跃', en: 'Tilt phone to move, tilt up/tap to jump' },
note: { zh: '最终版本,项目转向 3D 滚球', en: 'Final version, project shifted to 3D rolling ball' },
order: 6
}
]