Skip to content

[portal] 多语言 supportedLocales + fallbackLocale + 切换器协议(GAP-3 of #1294) #1333

Description

@xuyushun441-sys

现象

#1294 spec 有 locale: 'auto' 但没声明 portal 支持哪些语言,Accept-Language 落在不支持的语种时 fallback 行为未定义。

复现

  1. helpdesk 翻译 bundle 只含 en + zh-CN
  2. 日本客户访问 /portal/helpdesk,浏览器 Accept-Language=ja
  3. 框架是渲染 ja key(缺失文案显示原 key)?回落到 en?回落到模板默认?spec 没规定

Workaround

模板里强制 locale: 'en',多语言客户体验差。

分阶段建议

M2:PortalSchema 新增:

supportedLocales?: string[];              // e.g. ['en','zh-CN','ja']
fallbackLocale?: string;                  // 当 Accept-Language 不在 supportedLocales 时使用,默认 'en'
languageSwitcher?: { visible: boolean; position?: 'header'|'footer' }; // UI 开关

运行时:

  1. 解析 Accept-Language
  2. 与 supportedLocales 取交集,按 q 值排序选第一个
  3. 没交集 → fallbackLocale
  4. 用户手动切换 → 写 cookie,覆盖自动协商

验收

  • portal 声明 supportedLocales: ['en','zh-CN']
  • ja 客户访问看到英文(fallback),不是缺失 key
  • 头部出现 EN | 中文 切换器(如声明 visible)

关联

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions