本机保存什么?
- 本地练习数据:当前课程、随机顺序、中途位置、完成状态、每日练习数、错题、重音模式、音效与语速偏好保存在浏览器 localStorage。
- 随身听音频缓存:只有用户确认准备音轨,或主动开启“练习结束后准备单词和例句音频”后,预生成的西语音频才会进入浏览器 Cache Storage。自动准备只在完成页停留期间进行,不在打字过程中下载。设置会显示当日音频下载量和缓存量,并可清除;浏览器也可能自行回收缓存。
- 默认不上传:未创建或连接同步空间时,上述练习数据不会发送到 HolaDone 的同步数据库。音频下载只请求公开的卡片音频文件,不把练习历史、错题或播放队列发送给语音生成服务。
- 删除本机数据:清除本网站的浏览器站点数据即可删除本机记录和音频缓存;删除后无法恢复。
同意匿名使用统计后会发生什么?
- 使用目的:用于判断用户是否真正开始、完成或中途退出练习,并改进轮次长度、模式衔接与安装引导时机。
- 发送内容:只手动发送练习开始、首次输入、完成、退出、模式、复习类型、等级、项目数、耗时、错误次数和独立答对率等汇总事件;为评估 SEO 承接,还会发送粗粒度入口类别(例如 Google 自然搜索、站内 SEO 落地页或直接/未知)和落地页类型(例如 A1、重音或听写)。
- 明确不发送:不发送用户输入的文字、具体练习词条、卡片 ID、同步码、同步空间内容、搜索词、完整网页地址、原始来源页或营销参数值;不启用自动点击、会话录屏、热力图或自动异常采集。
- 服务商与标识:事件发送到 PostHog Cloud EU。同意后,PostHog 会在本机 localStorage 保存一个随机浏览器标识,用于计算回访与留存;本站不会将它与姓名、邮箱或账号绑定。服务商仍可能处理提供服务和安全防护所需的 IP 与技术请求信息。
- 拒绝或撤回:选择“不提供使用数据”后不会发送使用事件,且网站仍可正常使用。可随时在设置中开启或撤回;撤回只影响之后的采集。清除站点数据会同时清除本机选择和随机标识。
主动开启同步后会发生什么?
- 同步内容:当前练习位置、最近两轮队列、每日记录、每张卡的跟打/看义/听音证据、单元掌握进度、错题和训练偏好会在浏览器内加密后上传。
- 端到端加密:浏览器从 20 位同步码派生 AES-256-GCM 密钥。Vercel Function 与 Upstash Redis 只处理派生凭证和密文,不接收明文同步码或可直接解密的密钥。
- 同步码责任:拿到同步码的人可以加入、修改或删除这份进度;它应当像密码一样保管。本项目没有邮箱账号,也无法替用户找回丢失的同步码。
- 保存期限与删除:每次写入会将云端密文的自动过期时间续至 400 天。用户可在设置中立即删除云端数据;仅“停止本机同步”不会删除云端副本。
主动提交反馈后会发生什么?
- 发送内容:用户主动填写的反馈类型、正文和可选联系方式,以及当前页面、界面语言、目标语言和浏览器技术信息。
- 明确不自动发送:不附带练习记录、具体词条、输入内容、错题、同步码或同步空间内容;也不应在反馈正文中填写密码、同步码或其他敏感信息。
- 用途:只用于阅读反馈、定位问题、改进产品,并在用户主动留下联系方式时回复;不用于营销订阅。
- 服务商:Vercel Function 通过 Resend 将反馈发送到项目维护者配置的邮箱。Resend 可能按照其服务政策处理邮件内容、投递状态和提供服务所需的技术日志。
- 反滥用:服务器会使用短期、不可直接还原的网络地址哈希限制高频提交;该限流记录自动过期。
语音和托管的边界
- 西语朗读:单词、例句、听写与随身听统一使用预生成的西语合成音频,并作为普通网站媒体文件下载;运行时不会调用 Google Cloud TTS,也不会把练习内容或播放队列发送给语音生成服务。独立法语练习仍可能使用浏览器 Speech Synthesis。
- 托管与存储:页面、公开音频和同步接口由 Vercel 托管,可选同步密文由 Upstash Redis 保存。这些服务商可能处理提供服务所需的 IP、设备、请求与安全日志。
- 外部链接:方法、来源与许可说明会链接到 wordfreq、Instituto Cervantes、Kaikki 等第三方站点;离开本站后适用对方的隐私规则。
使用选择
不需要跨设备时可以一直只用本地保存。需要手机与电脑共享进度时,再由用户在设置中主动创建或连接同步空间。