多语言结果显示修复
结果文案按当前语言展示;分数、测量值、原判定、区间、颜色及原测试日期保持记录时的值。
实现
- 统一活动结果、各工具历史列表和“我的本地数据”历史弹窗的翻译展示。覆盖使用结果对象的26个组件;原本由computed实时生成的结果继续按原逻辑显示。
- 新记录保存
__resultI18n稳定消息标识、参数和来源语言,同时保留原文案字段供旧版本兼容。既有localStorage key与每工具50条上限不变。 - 旧记录按已知字典在内存中识别翻译,查看/切换语言不回写或迁移原始存储。无法确认的旧文案保留原文,不按分数猜等级,不改写自由文本。
- 打开历史记录时以原卡片快照为准,不用当前表单或个人资料补造历史测量值、性别/年龄区间。没有保存这些信息的旧记录不会凭空补全。
- BMI的新计算记录原始切点,切换语言只换文案,不因地区语言切换重新判分。所有结果仍使用原计算逻辑。
- 日期按当前语言格式显示;历史结果和再次保存的旧结果保留原测试日期。再次保存时,原卡片优先于旧handler根据当前输入重建的卡片。
- 历史结果显示简短提示,说明数值和判定沿用当时标准;手机弹窗预留关闭按钮的空间。
验证
- 116项单测通过,新增41项覆盖五种来源语言×五种目标语言的旧记录、稳定标识、参数/组合标签、BMI跨地区原判定、未知原文回退和再次保存快照。
- 翻译基础模块与结果composable的严格TypeScript独立检查通过。
- 浏览器使用独立本地测试资料,屏蔽外部分析请求;验证五语历史列表及重开结果、旧存储逐字未变、新记录保存后跨语言打开、活动结果和历史弹窗原地切换、原日期、BMI/FFMI原区间及手机无溢出。最终生产构建通过,共609条预渲染路由;最终产物的上述浏览器回归及再次保存原日期/原卡片检查通过。发布结果另写运营日志。
边界:历史记录中从未保存过的信息不能可靠恢复;已移除或无法唯一识别的旧文案保留原文,避免改变原判断。没有读取用户真实浏览器的健康记录,未向服务器上传测试结果。