# 应用语言选择 ## 范围 在设置的「常规」末尾新增语言下拉框,提供自动检测、简体中文、英文。 默认自动检测。保存后下次启动生效,不自动退出或重启应用。 本文件记录本次需求与实现取舍,不作为项目当前状态的持续维护文档。 ## 展示 - 收起时显示所选项的单个名称:自动检测使用当前界面语言,语言项使用自称。 - 展开时显示「自称 · 当前界面语言名称」。重复名称保留。 - 自动检测的固定前缀为 `Auto Detect`。 - 顺序为自动检测、简体中文、英文。 - 行标题为「语言」/ `Language`,说明为「下次启动生效」/ `Takes effect next launch`。 | 选项 | 中文界面 | 英文界面 | | --- | --- | --- | | 自动检测 | Auto Detect · 自动检测 | Auto Detect · Auto Detect | | 简体中文 | 简体中文 · 简体中文 | 简体中文 · Simplified Chinese | | 英文 | English · 英文 | English · English | ## 偏好与生效 语言选择只影响本应用。显式选择写入应用级 `AppleLanguages`,自动检测移除该覆盖。 自动检测沿用 macOS 对应用支持语言的匹配;开发语言为简体中文。 不改全局语言、地区格式、代理设置或代理运行状态。 应用现有 SwiftUI 与 Foundation 本地化在下次启动读取同一应用偏好。 本次不迁移既有未本地化文案。 ## Module 与测试 seam `AppLanguagePreferences` 的 Interface 提供当前选择与保存选择。 该 Module 隐藏应用偏好域的读取及语言覆盖的写入。 `AppLanguage` 提供收起名称与双语菜单名称。 使用系统原生 Picker,独立提供当前值标签。 测试通过上述 Interface 检查缺失偏好、持久化往返、清除覆盖与双语名称。 测试使用进程私有 UserDefaults 域。 启动解析另外通过隔离的小型应用 bundle 验证,覆盖自动检测与显式覆盖。