PRODUCT SPACE

CoDelphi ⌁ gzhanlei/codelphi · main ↗

CoDelphi 把 GitHub 仓库变成一份可追溯的产品规格。 连接仓库后,AI 自动提取功能清单与用户场景,每次 push 自动总结行为变化——每一条结论都附带可点击的源码证据,而不是凭空生成的摘要。

最近一次分析:succeeded

分析完整性:部分完整——合并完整性部分(合并层有截断/冲突/护栏检出);核验部分(存在一致性冲突或影子对比不一致)。分析成功不等于完整,完整不等于正确;结论采纳前应经人工核实。

源码装配覆盖率(按文件字节)12.7%(已装配实现文件 196/492 个,6 趟提取);本规格未覆盖全部实现面(提取趟数触顶),未覆盖部分不产生结论。。运行时开关与数据依赖行为静态提取不可见(边界说明);发现缺口请在左侧功能树进入功能页,用「编辑/新增场景」人工补充并标记核实。

界面语言切换与双语外壳

界面语言(与分析输出语言独立)由 cookie 驱动服务端渲染:顶栏语言 pill 提交 POST /api/ui-locale 写一年期 SameSite=Lax cookie 并同源重定向,三种外壳与根布局按 locale 输出双语导航、品牌与 metadata,日期按 locale 格式化。

代码生成稳定链接 界面语言切换与双语外壳
未核实
实现分布 · 7 个文件
边界情况EC-1生成未核实
情境
请求体 locale 为 fr 或 redirectTo 为 https://evil.example、//evil.example、null
操作
POST /api/ui-locale
结果
返回 400 与校验错误消息,不写 cookie、不重定向
边界情况EC-2生成未核实
情境
cookie 缺失或值为未知语言(如 fr)
操作
resolveUiLocaleValue 执行
结果
回退为 zh-CN,页面按中文渲染
边界情况EC-3生成未核实
情境
用户点击当前已选中的语言按钮或切换请求尚未完成
操作
点击语言切换器按钮
结果
不发起请求(next === locale 或 pending 时直接返回),按钮在 pending 期间禁用
错误路径ER-1生成未核实
情境
提交的 locale 不在 zh-CN/en 内,或 redirectTo 为站外地址、协议相对地址、非 / 开头
操作
POST /api/ui-locale
结果
返回 400 与校验错误消息,不写 cookie 不重定向
错误路径ER-2生成未核实
情境
切换请求网络失败
操作
LanguageSwitcher 的 switchTo 执行
结果
finally 中恢复 pending 状态,按钮重新可用
正常路径HP-1生成未核实
情境
界面语言为中文的用户在任意外壳页面
操作
点击顶栏语言切换器中的 English
结果
POST /api/ui-locale 携带 locale=en 与当前路径,服务端写 codelphi_locale=en 并 303 重定向回原页,页面以英文文案重新渲染
正常路径HP-10生成未核实
情境
界面语言为 en 时查看仪表盘、设置页、成本观测页或产品总览
操作
页面调用 formatDateIn/formatDateTimeIn 渲染日期
结果
日期按 en 的 Intl 格式输出,不再使用硬编码 zh-CN
正常路径HP-14生成未核实
情境
cookie 中 codelphi_locale 为 en
操作
渲染根布局与外壳
结果
html lang 为 en,metadata 描述为英文,导航与品牌标语取英文字典条目
正常路径HP-2生成未核实
情境
界面语言为英文的用户打开应用外壳页面
操作
渲染侧栏与顶栏
结果
导航项显示 Products/Workspaces/Settings 等英文标签,品牌标语为 Product change radar,html lang 为 en
正常路径HP-3生成未核实
情境
匿名访客打开公开外壳页面
操作
渲染顶栏
结果
显示语言切换器与英文/中文对应的登录入口文案,站点导航按 locale 取值
正常路径HP-4生成未核实
情境
用户在任意外壳顶栏点击另一种界面语言
操作
LanguageSwitcher 提交 POST /api/ui-locale 携带当前路径
结果
接口写入一年期 codelphi_locale cookie 并 303 回跳,切换器调用 router.refresh 刷新当前页
正常路径HP-5生成未核实
情境
界面语言 cookie 为 en
操作
根布局与外壳渲染
结果
html lang 为 en,metadata description、导航、登录、演示提示与品牌标语取英文条目
正常路径HP-6生成未核实
情境
界面语言为 en 且页面展示日期
操作
仪表盘、设置页、成本页或产品总览渲染日期
结果
日期经 formatDateIn/formatDateTimeIn 按 en 的 Intl 格式输出