项目背景与合规说明
关于与合规
非官方声明、汉化边界说明、素材出处与科学数据来源追溯。数据来源 ↗
非官方声明。
本项目是独立开发的非官方中文界面与资料层,与 NASA、Jet Propulsion Laboratory
及 Eyes on the Solar System 无任何隶属、授权或背书关系。
3D 模拟、天体历表与航天器轨迹由 NASA/JPL 官方在线服务提供并渲染,本项目不参与任何计算。
NASA 与 JPL 标识的所有权归其各自机构。
本项目做了什么,没做什么
| 类别 | 事实说明 |
|---|---|
| 做了 | 中文门户、中文导航、中英术语表、天体与任务的中文转译、官方嵌入参数封装。 |
| 做了 | 对官方站点做只读的技术取证:HTTP 响应头、加载完成后的 DOM 结构、运行时 DOM 文本采集、公开 JSON 接口探测。 |
| 没有做 | 没有抓取、复制或重新托管 NASA 的任何程序(app.js / vendors.js)、三维模型、地形瓦片、纹理或星表数据。 |
| 没有做 | 没有自建行星动力学或渲染引擎;画面 100% 来自官方服务驱动解算。 |
| 没有做 | 没有绕过同源策略:跨域 iframe 的内部文档在实测中不可读也不可写,本项目不做任何规避尝试。 |
| 没有做 | 没有使用未经验证的内部接口。所有 URL 参数与路由都对应官方 Share → Embed 对话框中实际存在的控件。 |
汉化范围与无法汉化的部分
可以汉化(且已实测)
官方模拟器的全部可读文字都在 DOM 里,包括 3D 场景中的天体名称标签——它们不是贴图文字:
<div class="pioneer-label-div no-select earth planet clickable"
style="position:absolute; translate:792px 362px">
<span class="icon no-icon"></span><span class="text">Earth</span>
</div>
实测把 10 个行星标签改写为中文后,静置 6 秒并模拟滚轮缩放,中文全部保留未被回写——应用只更新标签坐标,不重写文字。
无法汉化,或按规范不应汉化
| 内容 | 原因说明 |
|---|---|
| 本站 iframe 内模拟器的一切文字 | 浏览器同源策略。实测父页面读取 contentDocument 得到 null,访问 contentWindow.location 抛 SecurityError。这是不可绕过的硬限制,绕过它需要注入对方页面,属不安全做法。 |
| NASA / JPL 标识与 Eyes on the Solar System 产品名 | 机构标识与产品名,按品牌规范保留原文,不翻译、不改写。 |
| 按键字母 W A S D K SHIFT 等 | 与键盘物理印字一致,翻译反而造成障碍。 |
| 日期、时间、距离、坐标、单位数值 | 需求明确规定不得因翻译改变;本项目不做任何数字重排或换算。 |
##moon_count## 一类运行时模板占位符 | 由官方站点在渲染时替换(例如海卫一的卫星计数)。翻译层必须原样保留占位符,只处理其周围文字。 |
| 官方库中未收录中文名的条目 | 官方实体库共 719 条,其中卫星 451 条。多数小卫星与任务代号没有可靠中文译名,一律保留英文并在术语表中标注为“未收录”。 |
| 少数官方简介缺失的条目 | 例如银河系(milky_way)在官方 descriptions/ 中无对应文件;sc_spitzer、pluto 等路径返回 403。这些条目只显示名称,不编造简介。 |
许可核查结论
在官方 app.js(1 740 432 字节)中检索 github.com、open source、opensource、license、terms of use、public domain,命中次数均为 0。
因此:本次调查未发现任何允许再分发 NASA Eyes 程序或素材的许可声明,本项目不作“NASA 软件已开源”的断言,也不复制其任何程序或数据资源。
中文简介译自官方公开提供的 descriptions/<id>.json 文本,逐条附来源 URL,属于对公开事实性文本的转译并注明出处;如需扩大使用范围,请直接向 NASA/JPL 确认。
素材与数据来源
- 3D 模拟与渲染
- NASA/JPL Eyes on the Solar System,eyes.nasa.gov/apps/solar-system
- 实体名称与 id
- 该应用运行时实体库导出的快照,存档于
data/source/entities.en.json(719 条,导出于 2026-10-11);英文键名取自实体库的稳定 slug。 - 天体与任务简介文本
- 逐条译自该应用公开的
descriptions/<id>.json的blurb字段,数字与单位保持原样,存档于data/source/descriptions.en.json(93 条)。 - 术语与界面对照驱动
- 由
data/names.zh.json与data/ui.zh.json共同驱动,站点与浏览器汉化扩展共用同一套术语对照表。 - 界面字符串
- 加载完成页面的 DOM 实测采集,存档于
research/harvest_mars.json - 轨道与历表数据
- JPL Solar System Dynamics(ssd.jpl.nasa.gov)、CNEOS(cneos.jpl.nasa.gov)——由官方服务自行调用,本项目不接触
- 中文译名依据
- 全国科学技术名词审定委员会《天文学名词》通行译法;无可靠译名者保留原文并标注
- 卫星中文序号名
- 中文维基百科各行星卫星条目(木星的卫星、土星的卫星、天王星的卫星、海王星的卫星)表格中的「编号 / 名称」列, 例如 土卫三十六 = Aegir、木卫十六 = Metis。共据此补入 122 条,逐条与 NASA 实体库的 id 对齐后才写入; 对不上的 2 条已丢弃而非猜测。该来源为第三方百科,非官方审定术语,如需正式出版物用名请另行核对。
- 任务事件名
- 该应用公开的
events/<id>/all_events.json的title字段, 2026-10-11 实际抓取到 27/169 个航天器提供该文件,去重得 249 条标题
技术事实(可复核)
以下每一条都在 技术调查报告(或访问 GitHub 在线阅读)中附有原始输出:
- 渲染引擎 Three.js r185,单张 WebGL canvas;自研引擎代号 Pioneer。
- 响应头中不存在
X-Frame-Options,也不存在Content-Security-Policy;官方 Share → Embed 对话框本身就会生成<iframe … allowfullscreen>代码。 - 应用没有任何国际化机制:界面英文字面量硬编码在 bundle 中,从不读取
navigator.language;bundle 里的zh-cn命中全部来自 moment.js 的日期语言分包,与本应用文案无关。 - 路由
/:spaceObject、/:spaceObject/events/:child、/:spaceObject/compare等,以及时间参数格式YYYY-MM-DDTHH:mm:ss.SSSZ,均取自 bundle 中的路由表与_dateFormats.utc.url,并经实际跳转验证。
维护与校验工具
官方站点改版会让依赖 class 名与英文字面量的汉化层失效。项目提供两个校验脚本:
node tools/sync-glossary.mjs data/source/entities.en.json data/names.zh.json --write—— 用官方实体库校正 id 与英文名,剔除已消失的条目。node tools/lint-zh.mjs—— 校验中文条目的英文原文与官方存档逐字一致,并检查中文串里是否残留未译英文。