WangDL 7066200b7b feat: MVVM 架构、全套 UI 页面、浅深色主题、本地持久化、等待名单、AI 动效
- 架构层:ViewModel/ObservableObject、Service/Repository、网络层 APIClient/APIEndpoint/APIError
- 设计系统:Color(light:dark:) 自适应 28 色 Token、ColorSchemeManager 深浅色切换
- 全页面:AI 对话/反馈/回忆/薄弱点、知识库 CRUD、学习工作台、复习计划、学习分析、个人中心/设置
- 登录与引导:Sign in with Apple、AppSession 状态管理、引导流程、演示模式
- 本地持久化:FileCache + PersistenceController(学习任务/复习任务/学习记录)
- 本地化:zh-Hans Localizable.strings ~120 条、ZXStrings 程序化引用、LanguageManager
- 组件库:ZXTabBar/ZXBackHeader/ZXSTaskRow/ZXChartView/ZXTypingIndicator 等 22 个共享组件
- 等待名单:WaitlistView 邮箱收集表单
- 动效:ZXTypingIndicator AI 打字动画、ZXShimmerModifier 骨架屏
- 测试:StudyHomeViewModel/AIChatViewModel/ReviewPlanViewModel/FileCache 共 28 条
- Dynamic Type 支持 + 范围限制

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-10 22:22:50 +08:00

189 lines
6.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* Localizable.strings (Base = 中文简体) */
/* 所有 SwiftUI Text 自动以中文文案作为 key 查找此表。 */
/* 中文作为 Base 语言key 与 value 相同。 */
/* 添加新语言时,创建对应 .lproj/Localizable.strings 翻译文件即可。 */
/* 通用 */
"好的" = "好的";
"取消" = "取消";
"重试" = "重试";
"加载中…" = "加载中…";
"确认" = "确认";
"跳过" = "跳过";
"保存" = "保存";
"提交" = "提交";
"提交中…" = "提交中…";
"搜索" = "搜索";
/* Tab */
"AI" = "AI";
"知识库" = "知识库";
"学习" = "学习";
"分析" = "分析";
"我的" = "我的";
/* 登录 */
"知习" = "知习";
"更懂你,更会学。" = "更懂你,更会学。";
"使用 Apple 继续" = "使用 Apple 继续";
"登录即代表你同意《用户服务协议》和《隐私政策》" = "登录即代表你同意《用户服务协议》和《隐私政策》";
"跳过,进入演示模式" = "跳过,进入演示模式";
"已有账号?立即登录" = "已有账号?立即登录";
"用 AI 把知识库、主动回忆和间隔复习连接起来,\n从\"看过\"走向\"真正学会\"。" = "用 AI 把知识库、主动回忆和间隔复习连接起来,\n从\"看过\"走向\"真正学会\"。";
"用 AI 重新定义\n你的学习方式" = "用 AI 重新定义\n你的学习方式";
/* 引导 */
"开始使用" = "开始使用";
"开始学习" = "开始学习";
"下一步" = "下一步";
"设定你的学习目标" = "设定你的学习目标";
"学习目标" = "学习目标";
"学习方法" = "学习方法";
"每日学习时间" = "每日学习时间";
"15 分钟" = "15 分钟";
"30 分钟" = "30 分钟";
"1 小时" = "1 小时";
"不限制" = "不限制";
"备考考试" = "备考考试";
"职业技能" = "职业技能";
"通识学习" = "通识学习";
"自定义" = "自定义";
"输入知识" = "输入知识";
"主动输出" = "主动输出";
"AI 分析" = "AI 分析";
"掌握知识" = "掌握知识";
/* 学习主页 */
"学习工作台" = "学习工作台";
"今日任务" = "今日任务";
"今日进度" = "今日进度";
"本周学习活跃" = "本周学习活跃";
"14 天连续" = "14 天连续";
"已学" = "已学";
"剩余" = "剩余";
"掌握" = "掌握";
"个任务" = "个任务";
"分钟" = "分钟";
"AI 自动排期" = "AI 自动排期";
"间隔复习" = "间隔复习";
"费曼技巧" = "费曼技巧";
"主动回忆" = "主动回忆";
"发现知识薄弱点" = "发现知识薄弱点";
"用自己的话讲出来" = "用自己的话讲出来";
"基于间隔重复的智能复习" = "基于间隔重复的智能复习";
/* AI 对话 */
"AI 对话" = "AI 对话";
"AI 学习助手" = "AI 学习助手";
"问 AI 任何学习问题…" = "问 AI 任何学习问题…";
"发送消息" = "发送消息";
"AI 对话输入" = "AI 对话输入";
/* AI 反馈 */
"AI 反馈" = "AI 反馈";
"今日思考" = "今日思考";
"你的回答" = "你的回答";
"答对的部分" = "答对的部分";
"需要完善" = "需要完善";
"✨ 参考答案要点" = "✨ 参考答案要点";
"加入待巩固,安排间隔复习" = "加入待巩固,安排间隔复习";
"深入提问" = "深入提问";
"再来一题" = "再来一题";
"开始回答" = "开始回答";
"提交回答,获取 AI 反馈" = "提交回答,获取 AI 反馈";
/* 复习 */
"复习计划" = "复习计划";
"今天" = "今天";
"明天" = "明天";
"本周" = "本周";
"暂无复习任务" = "暂无复习任务";
"完成学习后 AI 会自动生成复习计划" = "完成学习后 AI 会自动生成复习计划";
"间隔重复" = "间隔重复";
"费曼" = "费曼";
"回忆" = "回忆";
"薄弱" = "薄弱";
/* 知识库 */
"创建知识库" = "创建知识库";
"创建新知识库" = "创建新知识库";
"知识库名称" = "知识库名称";
"添加知识点" = "添加知识点";
"知识点详情" = "知识点详情";
"编辑知识点" = "编辑知识点";
"导入资料" = "导入资料";
"搜索知识库或知识点…" = "搜索知识库或知识点…";
/* 反馈 */
"反馈" = "反馈";
"反馈已提交" = "反馈已提交";
"感谢你的反馈,我们会尽快处理。" = "感谢你的反馈,我们会尽快处理。";
"请描述你遇到的问题或建议…" = "请描述你遇到的问题或建议…";
"反馈类型" = "反馈类型";
"提交反馈" = "提交反馈";
"问题报告 · 功能建议" = "问题报告 · 功能建议";
/* 设置 */
"语言" = "语言";
"外观" = "外观";
"跟随系统" = "跟随系统";
"深色模式" = "深色模式";
"浅色模式" = "浅色模式";
"学习目标设置" = "学习目标设置";
"调整你的学习目标" = "调整你的学习目标";
"复习提醒" = "复习提醒";
"间隔复习通知设置" = "间隔复习通知设置";
"学习报告" = "学习报告";
"周报 · 月报 · 成就" = "周报 · 月报 · 成就";
"学习方法偏好" = "学习方法偏好";
"回忆 · 费曼 · 间隔" = "回忆 · 费曼 · 间隔";
"数据同步与备份" = "数据同步与备份";
"云端同步设置" = "云端同步设置";
"开启复习提醒" = "开启复习提醒";
"提醒时间" = "提醒时间";
"间隔天数" = "间隔天数";
"iCloud 同步" = "iCloud 同步";
"自动备份" = "自动备份";
/* 成就 */
"成就" = "成就";
"连续天" = "连续天";
"知识点" = "知识点";
"积分" = "积分";
"学习者" = "学习者";
"连续 14 天" = "连续 14 天";
"费曼达人" = "费曼达人";
"知识收藏家" = "知识收藏家";
"速学者" = "速学者";
/* 学习分析 */
"学习分析" = "学习分析";
"综合掌握" = "综合掌握";
"需要复习" = "需要复习";
"薄弱知识点" = "薄弱知识点";
"掌握度趋势" = "掌握度趋势";
"本周积分" = "本周积分";
"最近 AI 互动" = "最近 AI 互动";
"昨天" = "昨天";
"近 7 天" = "近 7 天";
/* 错误 */
"网络请求失败" = "网络请求失败";
"登录状态已失效" = "登录状态已失效";
"数据解析失败" = "数据解析失败";
"无效的请求地址" = "无效的请求地址";
"服务器返回错误" = "服务器返回错误";
"Token 已过期" = "Token 已过期";
"无法获取 Apple 登录凭证" = "无法获取 Apple 登录凭证";
"未获取到身份验证信息" = "未获取到身份验证信息";
/* 内容分类 */
"Bug 反馈" = "Bug 反馈";
"功能建议" = "功能建议";
"内容问题" = "内容问题";
"其他" = "其他";
"公考、考研、考证等" = "公考、考研、考证等";
"编程、设计、产品等" = "编程、设计、产品等";
"扩充知识面" = "扩充知识面";
"设定自己的目标" = "设定自己的目标";