Skip to content

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

@xuyushun441-sys

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',多语言客户体验差。

分阶段建议

M2PortalSchema 新增:

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)

关联

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions