# 全球词典数据来源审计

核对时间：2026-10-13（Toronto）；实际下载记录采用 UTC，日语源文件标注生成于 2026-10-14。本清单区分已导入的数据、可执行的后续来源和仍需条件的来源，不能把界面语言数量、词频表词形数或拼写词根数宣传成“大字典全集”。机器可读清单见 `data/global/catalog.json`。

## 已落地的数据层

| 数据层 | 实际产物 | 已有能力 | 尚无能力 |
| --- | --- | --- | --- |
| 中文普通话、粤语 | `data/windows/manifest.json` | 普通话 465,323 条词音 / 44,365 字；粤语 134,266 条词音 / 26,983 字 | 不是商业大字典的全文；两种中文界面不能重复计为两套词库 |
| 14 种外语词形与排序 | `data/global/manifest.json` | 3,730,337 条有效源词形，提供固定源全表与排序数据 | 没有释义、译文、音标；不是外语大词典全文；词形归一化会影响字形还原 |
| 日语 JMdict 第二层 | `data/global/japanese/manifest.json` | 218,909 词条、253,796 义项、443,723 英文 gloss；源 ID 与词义适用范围保留 | 不生成日语屈折形式、罗马字、句子翻译或音频；尚未集成原生输入法 |
| 日语假名候选层 | `data/global/japanese/ja-reading.tsv` | 321,922 条去重的规范化假名键—词形；可查 `がっこう → 学校`、`にほん → 日本` | 无 `gakkou` 罗马字转写；排序分数是来源 priority 标签粗分级，不是当代统计词频 |

外语词频层选用 wordfreq 3.1.1 的 13 种完整 best 词表（en/ja/ko/es/fr/de/pt/ru/ar/hi/id/vi/tr），泰语另取 PyThaiNLP 固定版本的 CC0 `words_th` 与 `tnc_freq`。各语言数量、原始来源摘要、拒绝记录和文件摘要以该层 manifest/lock 为准，不在此混合计作释义条数。

## 日语：已实现可复现导入

采用 [EDRDG 官方 JMdict_e.gz](https://www.edrdg.org/pub/Nihongo/JMdict_e.gz)，仅日文及英文部分。多语版中的其他语言翻译有独立权利，未纳入；带例句的 `_examp` 文件也未使用。格式为含内部 DTD 的 UTF-8 XML gzip，包含汉字写法、假名读音、词性和英文释义。[项目与格式说明](https://www.edrdg.org/wiki/JMdict-EDICT_Dictionary_Project.html)

当前官方声明为 **CC-BY-SA-4.0**，不是一些旧页面写的 3.0。须保留署名、许可、变更说明，并用同许可分发派生词典数据；EDRDG 明确允许商业使用，使用词典的软件不必开源。手机应有可访问的来源/关于页，纯词典网站的结果页也要署名。需要定期更新流程；本工程提供显式更新命令，未创建定时任务。[官方许可与更新条件](https://www.edrdg.org/edrdg/licence.html)

| 快照 | 值 |
| --- | --- |
| 源生成日 | 2026-10-14 |
| 压缩包字节 | 10,585,144 |
| gzip SHA-256 | `38de0c1aa1fc6b2f1460189c06182589d03c2610511bbbbf9805b8d869ae9cec` |
| 解压 XML 字节 | 63,172,132 |
| XML SHA-256 | `accad227e8ea4b2cbf5f0fa0ce0af7637a49f7b64b11d5d60747fbb423f287e3` |
| 词形—原假名读音对 | 323,406 个不同组合；保留词条 ID 时为 325,082 条记录 |
| 限制读音 / 纯假名读音 | 4,769 / 6,647 |

`scripts/import-japanese-dictionary.py` 是新写的标准库导入器，未复制 GPL 代码。默认离线验证锁定摘要；`--refresh-source` 会先核对已审查的官方许可声明，再下载、生成、保留旧产物并更新锁。许可声明变化时停止更新供维护者复核，不静默接受新条件。输入大小有上限，拒绝外部 XML 实体，未认识的字段也会停止导入。

```text
python scripts/import-japanese-dictionary.py
python scripts/import-japanese-dictionary.py --query ガッコウ
python scripts/import-japanese-dictionary.py --refresh-source
python -m unittest discover -s tests -p test_japanese_dictionary.py
```

不得将全部汉字写法与全部读音直接作笛卡尔积：导入器按 `re_restr` 约束配对，`re_nokanji` 仅形成假名候选。`stagk`/`stagr` 义项限制留在完整 JSONL 中，显示释义时仍须使用它们筛选。TSV 只做 NFC、片假名 U+30A1…U+30F6 转平假名，按 UTF-16 ordinal 排序；不能用去重音规则删掉日语浊音。分数 3/2/1/0 是源 priority 标签的明确分级，原始标签仍保留。

数据、来源锁、`NOTICE.txt` 以及 `data/global/licenses/edrdg-jmdict-*.txt` 应随派生词典一起交付。三个数据文件都小于 25 MiB，完整 SHA-256 与字节数在日语 manifest。网页和安装器只公开需要分发的数据与通知，自有导入器、应用、服务代码不属于公开数据包。

## 韩语：官方大型词典可用，但未冒充已拿到整库

| 来源 | 格式/能力 | 分发条件及当前处理 |
| --- | --- | --- |
| [国立国语院 한국어기초사전](https://krdict.korean.go.kr/kor/mainAction) | 词形、文本发音、活用、词性、释义，多语对译；[统计](https://krdict.korean.go.kr/statistic/dicStat)显示 53,671 主词条、73,636 义项（2026-10-03） | [文本默认 CC-BY-SA-2.0-KR](https://krdict.korean.go.kr/kor/kboardPolicy/copyRightTermsInfo)，允许商业使用；音频、图像等逐项许可，不能自动打包 |
| [标准国语大词典](https://stdict.korean.go.kr/main/main.do) | 规范词形、读音、释义、词性；官方 API/下载流程 | [版权条款](https://stdict.korean.go.kr/join/copyrightPolicy.do)亦为文本默认 CC-BY-SA-2.0-KR；带明确出处的例句归原作者，未经授权的此类例句应排除 |
| [우리말샘](https://opendict.korean.go.kr/main) | 更大范围词条，含地域语、古语、专业词、谚语；须区分词条状态 | [统一版权政策](https://kdict.korean.go.kr/info/copyright)同样保留文本署名/相同许可及有出处例句例外；[官方 API](https://opendict.korean.go.kr/service/openApiInfo)需要认证键 |

执行路线：从官网“整个词典下载”流程获取 **XML 或 JSON**，选择词形、文本发音、活用和释义，保存原包、日期与 SHA-256。基础词典的[下载表单](https://krdict.korean.go.kr/kor/dicMarinerSearch/search)要求电子邮件并发送下载地址；[API](https://krdict.korean.go.kr/kor/openApi/openApiInfo)须申请认证键。此轮没有使用任何用户邮箱发送申请，也没有密钥，因而韩语正式词典状态是“已核对来源，待导入”，不是已下载完成。API 分页上限不能当作完整整库下载保证。

## 俄语、阿拉伯语与 Hunspell 拼写数据

已固定审计 [LibreOffice/dictionaries 提交 67032ee957631908098a72edf48dc81cac27e369](https://github.com/LibreOffice/dictionaries/tree/67032ee957631908098a72edf48dc81cac27e369)。**各目录分别许可，不能把仓库名称或 Hunspell 引擎许可当作所有词表许可。** `.dic` 是带标志的词干/词形，`.aff` 指定编码、词缀和禁止词等规则；去掉 `/flags` 后的简单列表既不是全部合法变形，也不是释义词典。[Hunspell 格式规范](https://github.com/hunspell/hunspell/blob/master/man/hunspell.5)

| 语言 | 已核对的词表许可文件 | 数据获取及判定 |
| --- | --- | --- |
| 俄语 ru | [README_ru_RU.txt](https://github.com/LibreOffice/dictionaries/blob/67032ee957631908098a72edf48dc81cac27e369/ru_RU/README_ru_RU.txt)：Lebedev 许可，允许源/二进制分发，保留通知、标明修改、不得冒称背书 | `ru_RU/ru_RU.dic` + `.aff` 可作为独立拼写数据候选；已下载核对，尚未导入。无完整释义或逐词发音 |
| 阿语 ar | [COPYING.txt](https://github.com/LibreOffice/dictionaries/blob/67032ee957631908098a72edf48dc81cac27e369/ar/COPYING.txt)：GPL-2.0-or-later / LGPL-2.1-or-later / MPL-1.1-or-later 三选一 | `ar/ar.dic` + `.aff` 已下载核对；可计划选择 MPL 路径保留独立词表及其修改的可取得源，避免把 GPL 代码并入闭源程序；尚未导入 |
| 英语 en | [en_US 通知](https://github.com/LibreOffice/dictionaries/blob/67032ee957631908098a72edf48dc81cac27e369/en/README_en_US.txt)：SCOWL 及混合来源宽松条款 | `en/en_US.dic/.aff`；必须保留该文件列出的全部来源通知；英美澳各版本分别审查 |
| 西语 es | [LICENSE.md](https://github.com/LibreOffice/dictionaries/blob/67032ee957631908098a72edf48dc81cac27e369/es/LICENSE.md)：拼写部分 GPL-3.0+ / LGPL-3.0+ / MPL-1.1+ 可选 | `es/es_ES.dic/.aff`；其他国家变体可另包；不要把同义词库的独立许可混入 |
| 法语 fr | [README_dict_fr.txt](https://github.com/LibreOffice/dictionaries/blob/67032ee957631908098a72edf48dc81cac27e369/fr_FR/dictionaries/README_dict_fr.txt)：MPL-2.0 | `fr_FR/dictionaries/fr.dic/.aff`；保留词表源与修改通知，待导入 |
| 德语 de | [README_de_DE_frami.txt](https://github.com/LibreOffice/dictionaries/blob/67032ee957631908098a72edf48dc81cac27e369/de/README_de_DE_frami.txt)：GPL 2 或 3 | `de/de_DE_frami.dic/.aff`；只作为独立数据包候选，先落实相应源与许可分发方式，不合并 GPL 程序代码 |
| 葡语 pt-BR | [README_en.txt](https://github.com/LibreOffice/dictionaries/blob/67032ee957631908098a72edf48dc81cac27e369/pt_BR/README_en.txt)：LGPL-3.0 及 MPL，README 未写清 MPL 版次 | `pt_BR/pt_BR.dic/.aff`；分发前补核具体许可文件/选定路径，未按“任意宽松”处理 |
| 韩语 ko | [README_ko_KR.txt](https://github.com/LibreOffice/dictionaries/blob/67032ee957631908098a72edf48dc81cac27e369/ko_KR/README_ko_KR.txt)：当前为 GPL-3.0 | `ko_KR/ko_KR.dic/.aff`；不沿用旧第三方汇总中的三许可说法；官方文本词典路线优先 |
| 印地语 hi | [README_hi_IN.txt](https://github.com/LibreOffice/dictionaries/blob/67032ee957631908098a72edf48dc81cac27e369/hi_IN/README_hi_IN.txt)：GPL，具体版次需随附全文核实 | `hi_IN/hi_IN.dic/.aff`；暂不并入产品 |
| 印尼语 id | [README-dict.adoc](https://github.com/LibreOffice/dictionaries/blob/67032ee957631908098a72edf48dc81cac27e369/id/README-dict.adoc)与[LICENSE-dict](https://github.com/LibreOffice/dictionaries/blob/67032ee957631908098a72edf48dc81cac27e369/id/LICENSE-dict)：LGPL-3.0；README 对 only/or-later 有不同表述 | `id/id_ID.dic/.aff`；保守按 LGPL-3.0 条件准备独立数据，版次差异记录待核 |
| 越语 vi | [LICENSES-en.txt](https://github.com/LibreOffice/dictionaries/blob/67032ee957631908098a72edf48dc81cac27e369/vi/LICENSES-en.txt)：GPLv2 | `vi/vi_VN.dic/.aff`；独立数据候选，未导入 |
| 土语 tr | [README.txt](https://github.com/LibreOffice/dictionaries/blob/67032ee957631908098a72edf48dc81cac27e369/tr_TR/README.txt)：MPL-2.0 | `tr_TR/tr_TR.dic/.aff`；可选独立拼写包，未导入 |
| 泰语 th | [README_th_TH.txt](https://github.com/LibreOffice/dictionaries/blob/67032ee957631908098a72edf48dc81cac27e369/th_TH/README_th_TH.txt)：LGPL，来源列 LEXiTRON/NECTEC/libthai | `th_TH/th_TH.dic/.aff`；版次与混合来源继续核实；当前实际词形包采用另行核对为 CC0 的 PyThaiNLP 数据 |

俄语 `.dic` 首行宣告 146,269，阿语首行宣告 `465928\t1`；这是源头格式字段，不等同于审计后的不同词数，也不表示已经集成到软件。实际下载摘要：

| 文件 | 字节 | SHA-256 |
| --- | ---: | --- |
| ru_RU.dic | 3,473,191 | `f6047416a0204adbecf3a451b874ec8a97ee37e2cbc714466ef04d8dbcc0d6fc` |
| ru_RU.aff | 71,236 | `38ce7d4af78e211e9bafe4bf7e3d6a2c420591136cb738ec6648f8fdf6524cd7` |
| ar.dic | 7,217,161 | `2a3e5367f61c1583734db9d66734f5603e6be5c2d227cf5c5cd7e4ca586e34fe` |
| ar.aff | 86,949 | `cec30b8621001e49618feb05aec1984c5fcfbf7d2ec309901d5cbf66585217a3` |

下载形式为 `https://raw.githubusercontent.com/LibreOffice/dictionaries/<固定提交>/<上表路径>`，准确 URL 同时写入 catalog 的 auditFiles。下一步需完整实现/选定合适许可的 affix 处理，不能把派生结果直接冒充人工校订词典。引擎许可和词典许可须分别保留。

## 真正的多语言释义层及暂不采用项

- **Wiktionary** 可作为上述多种语言的开放释义、词性、词形和部分读音来源。官方现推荐 [MediaWiki Content File Exports](https://dumps.wikimedia.org/other/mediawiki_content_history/readme.html)，按站点提供压缩 XML/wikitext；旧 XML dumps 已标为弃用。[许可说明](https://dumps.wikimedia.org/legal.html)列 CC-BY-SA-4.0/GFDL 及例外。应保留页面/修订来源和作者归属，单独处理模板、引用例句及媒体权利；不能把任意图片/音频跟随文本许可打包。本轮未下载整站、未宣称已解析全部语言。
- **阿语 Qabas** 是约 58K lemma 的词汇图谱，关联词典不等于获准复制这些词典正文。[官方介绍](https://sina.birzeit.edu/qabas/about)明确用定义 ID 而非相关词典定义正文；[资源许可表](https://sina.birzeit.edu/resources/index.html)当前标 **CC-BY-ND-4.0**。不纳入本轮需要归一化/改编的派生数据包；如采用须先确认拟作转换是否受许可允许或取得授权。没有因官网写“open-source”就推断允许任意修改。
- **CAMeL Morph** 是阿语形态分析模型候选，[项目](https://github.com/CAMeL-Lab/camel_morph)明确程序代码 MIT，但数据/模型的具体发行包仍须分别核验。代码许可不能替代训练数据和词典内容许可；本轮未复制其程序或模型。
- **俄语 OpenCorpora** 是形态词典候选。[官方 FAQ](https://opencorpora.org/wiki/FAQ)的检索资料显示 CC-BY-SA-3.0，但本轮下载端与页面读取超时，尚未得到可校验原包；catalog 标记待重新核对与下载，不计入已完成覆盖。

## 可持续更新与验收

1. 每个来源单独保留版本、下载日期、许可原文及 SHA-256；新增来源和许可变化由维护者明确审核。不能使用未锁定的 `master/latest` 数据静默覆盖已发布包。
2. 词频、拼写词形、读音映射、完整释义分层计数；每次更新对比缺失/新增/拒绝数和实际产物摘要，不凭上游宣传数量记账。
3. 对读音限制、罕见字保留、大小写/重音/阿文附加符、俄文 ё、土语 I、泰文声调分别建立测试；不能统一“去符号”损伤词形。
4. 日语入口、数据下载和许可证链接由产品接入方部署，原生端另行加载数据包并验证。数据就绪不表示 Windows/iOS/Android 已实现这些语言的系统输入、联想或语义翻译。
5. 按来源规则安排人工或另行授权的定期更新工作，当前没有创建自动化或付费 API。仍未接入的来源留在 catalog 的 pending 层，不在产品上宣称全球词典已经补齐。
