英汉词典与规范音标:ECDICT 常用子集 + IPA 规范化 + 多词典并存 (schema v12) #40

Closed
opened 2026-09-16 11:52:46 +08:00 by ila · 3 comments
Owner

来源与目标

用户 2026-09-16 提出:「找个英中词典,单词有发音」,并澄清「发音」指的是音标(举例「grok 的 /gra:k/」),不是音频。用户随后确认三项决策:约 5 万词量级的常用子集、规范 IPA 音标、允许 schema v12(多本词典并存)。

目标:学习者点词时,除了现有的英英释义(WordNet),还能看到中文释义与规范 IPA 音标;两本词典可分别启用/禁用,个人释义与学习状态规则不变。

已核实的数据事实(本地下载真实发布包实测,非估计)

项目 实测值
数据源 ECDICT(skywind3000/ECDICT)Release 1.0.28 的 ecdict-stardict-28.zip,sha256 c707d0f3ded6ec79b96466da4a1574e074703da5af9c120fbad97f9cb08c6f2c,70,415,834 字节
许可 仓库 MIT(Copyright (c) 2025 Linwei,LICENSE 全文已取得);README 说明数据来自公开资料整理,再分发前需自行评估
全量词条 3,402,564 条(含短语),解包后 .dict 118MB + .idx 82MB
有音标 1,667,142 条
子集口径 ECDICT ∩(WordNet 354,247 个 lemma ∪ 考试标签词),仅小写单词 → 82,766 条,原始载荷 约 8.1 MB
子集里有音标 64,041 条(ECDICT 记法)
音标格式 老式记法(grok *[^rɔk]、curiosity *[.kjuәri'ɒsiti]、a *[ei]),需要规范化
规范 IPA 来源 CMUdict(cmusphinx/cmudict,BSD-2)cmudict.dict:3,618,488 字节,sha256 81917843c7f44ce2b094ac63873c2c7a4cf802040792c455ba3ca406891c3d22,126,052 词条,ARPAbet 音素(curiosity → K Y UH2 R IY0 AA1 S AH0 T IY0)
音标覆盖实测 子集 82,766 条中 **35,804 条(43.3%)**可用 CMUdict 转写出真 IPA;28,237 条只有 ECDICT 记法;15,265 条两个来源都没有
通道说明 raw.githubusercontent.com/github.com archive 在本机时通时断,CMUdict 经 jsDelivr(cdn.jsdelivr.net/gh/...)取得 200 OK;资源以 sha256 为身份,镜像只用于传输,准备脚本按 sha256 校验,不匹配即失败

音标来源规则(分层,避免把"看起来像 IPA"的字符串冒充规范 IPA):

  1. 优先 CMUdict 转写:ARPAbet→IPA 固定映射表(重音 1→ˈ、2→ˌ、0 无标记;AH0→ə、IY→iː、UH→ʊ、AO→ɔː 等),子集约 43% 的词得到真 IPA。
  2. 否则用 ECDICT 记法做字符级规范化:只做可验证的字符替换——'→ˈ(27,643 次)、:→ː(14,844)、ә(U+04D9)→ə(U+0259)(14,808)、空格→删除(10,913)、,→ˌ(8,373)、.→ˌ;ɡ(U+0261) 本身即 IPA 保留;-、=、; 与独立大写标记字母(如 [A])按编辑标记删除。不做语义猜测(例:grok 的 [^rɔk] 里 ^ 的音值无法从数据验证,因此不复写为 ʌ,只记录原记法并标注来源)。
  3. 两个来源都没有音标就不显示(15,265 条),不生成占位内容。

每条音标记录来源(cmudict / ecdict);准备脚本统计规范化后仍不属于 IPA 字母表的字符并要求为 0,非 0 即拒绝产出;manifest.json 记录三类计数、源文件 sha256 与许可证文件名。

已确认范围

  • 数据与子集:只用 ECDICT 的常用子集(上表口径,约 6.6 万条、7.2MB),不导入全量 340 万条;子集规则与预期条目数写入资源 pin 文件,准备脚本在产出前断言实测值落在容差内。
  • 音标:存规范化后的 IPA;准备阶段完成规范化并校验字符集,导入只搬运已校验的数据。
  • 中文释义:取 ECDICT 的中文部分(含 [网络]/[地名]/[医] 等标注),保留多义行,按行存储,不做机器改写。
  • schema v12:放开 lexgo_dictionaries 的 CHECK (id = 1) 单行限制,增加 provider 列区分 wordnet 与 ecdict;两本词典可分别启用,查词时合并。
  • 查词合并顺序:中文释义在前、英英释义作为补充;音标紧随词形。个人释义/状态/等级与复习规则完全不变(#7/#8 口径),忽略与已知的外语词计数不受影响。
  • 降级:任一本词典缺失或禁用时,查词只用剩下那本;两本都没有时维持现有 resource_missing 行为。
  • 导入方式:沿用"显式准备 + 显式导入",运行时不联网;准备脚本从两个已 pin 的资源(ECDICT 与 WordNet)构建自包含 ZIP(entries.jsonl.gz + manifest.json),再由管理员导入(HTTP 接口或 Go 子命令),导入校验 sha256、条目数、许可证文件与格式版本。
  • 体积:导入后数据库增加约 7MB blob;#15 的 dump 与恢复演练需复跑一次确认。

非目标

发音音频(用户已明确只要音标)、整句或例句翻译、机器翻译、动态联网查询、词频统计界面、CSV 导入导出(X04)、以中文反查英文(汉英方向)。

验收标准

  • 点词后查词面板显示规范 IPA 音标与中文释义,并在有英英释义时一并显示;个人释义输入框与状态选择的行为不变。
  • 词典可在管理端分别启用/禁用;禁用英汉词典后查词只显示英英释义,禁用英英只显示中文与音标,两本都禁用时维持资源缺失提示。
  • 导入必须显式执行:sha256 与条目数校验失败即拒绝;资源 pin 文件与许可证文件随仓库保存;运行时不下载任何资源。
  • 迁移 v11→v12 可重放(回退版本标记后可重新升级),既有词典行与个人数据不变;回退二进制时旧版本仍能读取(新增列有默认值)。
  • 中文字符、音标符号与原文位置在查词结果里保持原样(不归一化、不替换)。
  • 桌面与 390×844 触摸视口下面板不溢出、长释义可滚动。

依赖与执行

前置:#6(词典导入与查询路径)、#7(个人释义与状态优先于词典内容)、#15(备份与恢复契约需覆盖新增资源)。状态:待实施。

设计证据

查词面板一行式改动(不新增页面),线框:

curiosity  /ˌkjʊəriˈɒsəti/              ← 词形 + 规范 IPA
释义  好奇心;新奇的事物;珍品            ← 中文本词典(多义分行,可滚动)
英英  a state in which you want to ...   ← WordNet(作为补充折叠在其下)
────────────────────────────
我的释义 [输入框]                         ← 保持 #7 行为
状态     [新词 ▾]

采用轻量模式:复用现有面板排版,只新增两行内容,不需要完整原型;用户已在会话中确认"音标 + 中文释义"这一目标与三项决策。

估算、风险与回退

初估 2~3 人日(准备脚本与资源 pin、v12 迁移与导入、查询合并、面板、测试与文档;是规划参考,不是排期承诺)。主要风险:ECDICT 的数据来源为公开资料整理,虽仓库为 MIT,但再分发前仍需自行评估;子集口径会漏掉 WordNet 与考试标签都未覆盖的词;音标规范化的字符校验必须为 0,否则视为数据不合格。回退:v12 只增列与放开约束,回退二进制前把 lexgo_schema.version 写回 11、删除 ecdict 词典行即可,个人数据与 WordNet 不受影响。

文档与证据

实施时更新 Architecture-and-Code-Map、Business-Rules-and-Glossary、Local-Development-and-Verification、Product-Requirements-Overview、Home 与 Deployment-and-Operations(备份体积);#15 的恢复演练复跑一次并记录词典 blob 的完整性。结束评论记录准备/导入命令、实测条目数与体积、音标字符校验结果、测试与 Wiki revision。原有 WordNet 资源 pin 与 #6 的导入契约保持不变。

Gitea MCP 仍指向其他站点,沿用目标站点 API 回退;凭据仅从既有安全配置读入进程。

## 来源与目标 用户 2026-09-16 提出:「**找个英中词典,单词有发音**」,并澄清「发音」指的是**音标**(举例「grok 的 /gra:k/」),不是音频。用户随后确认三项决策:**约 5 万词量级的常用子集**、**规范 IPA 音标**、**允许 schema v12**(多本词典并存)。 目标:学习者点词时,除了现有的英英释义(WordNet),还能看到**中文释义**与**规范 IPA 音标**;两本词典可分别启用/禁用,个人释义与学习状态规则不变。 ## 已核实的数据事实(本地下载真实发布包实测,非估计) | 项目 | 实测值 | |---|---| | 数据源 | ECDICT(`skywind3000/ECDICT`)Release 1.0.28 的 `ecdict-stardict-28.zip`,**sha256 `c707d0f3ded6ec79b96466da4a1574e074703da5af9c120fbad97f9cb08c6f2c`**,70,415,834 字节 | | 许可 | 仓库 **MIT**(Copyright (c) 2025 Linwei,`LICENSE` 全文已取得);README 说明数据来自公开资料整理,再分发前需自行评估 | | 全量词条 | **3,402,564** 条(含短语),解包后 `.dict` 118MB + `.idx` 82MB | | 有音标 | 1,667,142 条 | | 子集口径 | ECDICT ∩(WordNet 354,247 个 lemma ∪ 考试标签词),仅小写单词 → **82,766 条**,原始载荷 **约 8.1 MB** | | 子集里有音标 | **64,041** 条(ECDICT 记法) | | 音标格式 | 老式记法(`grok *[^rɔk]`、`curiosity *[.kjuәri'ɒsiti]`、`a *[ei]`),需要规范化 | | 规范 IPA 来源 | CMUdict(`cmusphinx/cmudict`,**BSD-2**)`cmudict.dict`:3,618,488 字节,**sha256 `81917843c7f44ce2b094ac63873c2c7a4cf802040792c455ba3ca406891c3d22`**,126,052 词条,ARPAbet 音素(`curiosity → K Y UH2 R IY0 AA1 S AH0 T IY0`) | | 音标覆盖实测 | 子集 82,766 条中 **35,804 条(43.3%)**可用 CMUdict 转写出真 IPA;28,237 条只有 ECDICT 记法;15,265 条两个来源都没有 | | 通道说明 | `raw.githubusercontent.com`/`github.com` archive 在本机时通时断,CMUdict 经 jsDelivr(`cdn.jsdelivr.net/gh/...`)取得 200 OK;**资源以 sha256 为身份,镜像只用于传输**,准备脚本按 sha256 校验,不匹配即失败 | **音标来源规则(分层,避免把"看起来像 IPA"的字符串冒充规范 IPA)**: 1. **优先 CMUdict 转写**:ARPAbet→IPA 固定映射表(重音 `1`→`ˈ`、`2`→`ˌ`、`0` 无标记;`AH0`→`ə`、`IY`→`iː`、`UH`→`ʊ`、`AO`→`ɔː` 等),子集约 43% 的词得到真 IPA。 2. **否则用 ECDICT 记法做字符级规范化**:只做可验证的字符替换——`'`→`ˈ`(27,643 次)、`:`→`ː`(14,844)、`ә`(U+04D9)→`ə`(U+0259)(14,808)、空格→删除(10,913)、`,`→`ˌ`(8,373)、`.`→`ˌ`;`ɡ`(U+0261) 本身即 IPA 保留;`-`、`=`、`;` 与独立大写标记字母(如 `[A]`)按编辑标记删除。**不做语义猜测**(例:`grok` 的 `[^rɔk]` 里 `^` 的音值无法从数据验证,因此不复写为 `ʌ`,只记录原记法并标注来源)。 3. **两个来源都没有音标就不显示**(15,265 条),不生成占位内容。 每条音标记录来源(`cmudict` / `ecdict`);准备脚本**统计规范化后仍不属于 IPA 字母表的字符并要求为 0**,非 0 即拒绝产出;`manifest.json` 记录三类计数、源文件 sha256 与许可证文件名。 ## 已确认范围 - **数据与子集**:只用 ECDICT 的常用子集(上表口径,约 6.6 万条、7.2MB),不导入全量 340 万条;子集规则与预期条目数写入资源 pin 文件,准备脚本在产出前断言实测值落在容差内。 - **音标**:存规范化后的 IPA;准备阶段完成规范化并校验字符集,导入只搬运已校验的数据。 - **中文释义**:取 ECDICT 的中文部分(含 `[网络]`/`[地名]`/`[医]` 等标注),保留多义行,按行存储,不做机器改写。 - **schema v12**:放开 `lexgo_dictionaries` 的 `CHECK (id = 1)` 单行限制,增加 `provider` 列区分 `wordnet` 与 `ecdict`;两本词典可分别启用,查词时合并。 - **查词合并顺序**:中文释义在前、英英释义作为补充;音标紧随词形。**个人释义/状态/等级与复习规则完全不变**(#7/#8 口径),忽略与已知的外语词计数不受影响。 - **降级**:任一本词典缺失或禁用时,查词只用剩下那本;两本都没有时维持现有 `resource_missing` 行为。 - **导入方式**:沿用"显式准备 + 显式导入",运行时不联网;准备脚本从两个已 pin 的资源(ECDICT 与 WordNet)构建**自包含 ZIP**(`entries.jsonl.gz` + `manifest.json`),再由管理员导入(HTTP 接口或 Go 子命令),导入校验 sha256、条目数、许可证文件与格式版本。 - **体积**:导入后数据库增加约 7MB blob;#15 的 dump 与恢复演练需复跑一次确认。 ## 非目标 发音**音频**(用户已明确只要音标)、整句或例句翻译、机器翻译、动态联网查询、词频统计界面、CSV 导入导出(X04)、以中文反查英文(汉英方向)。 ## 验收标准 - [ ] 点词后查词面板显示**规范 IPA 音标**与**中文释义**,并在有英英释义时一并显示;个人释义输入框与状态选择的行为不变。 - [ ] 词典可在管理端分别启用/禁用;禁用英汉词典后查词只显示英英释义,禁用英英只显示中文与音标,两本都禁用时维持资源缺失提示。 - [ ] 导入必须显式执行:sha256 与条目数校验失败即拒绝;资源 pin 文件与许可证文件随仓库保存;运行时不下载任何资源。 - [ ] 迁移 v11→v12 可重放(回退版本标记后可重新升级),既有词典行与个人数据不变;回退二进制时旧版本仍能读取(新增列有默认值)。 - [ ] 中文字符、音标符号与原文位置在查词结果里保持原样(不归一化、不替换)。 - [ ] 桌面与 390×844 触摸视口下面板不溢出、长释义可滚动。 ## 依赖与执行 前置:#6(词典导入与查询路径)、#7(个人释义与状态优先于词典内容)、#15(备份与恢复契约需覆盖新增资源)。状态:**待实施**。 ## 设计证据 查词面板一行式改动(不新增页面),线框: ``` curiosity /ˌkjʊəriˈɒsəti/ ← 词形 + 规范 IPA 释义 好奇心;新奇的事物;珍品 ← 中文本词典(多义分行,可滚动) 英英 a state in which you want to ... ← WordNet(作为补充折叠在其下) ──────────────────────────── 我的释义 [输入框] ← 保持 #7 行为 状态 [新词 ▾] ``` 采用轻量模式:复用现有面板排版,只新增两行内容,不需要完整原型;用户已在会话中确认"音标 + 中文释义"这一目标与三项决策。 ## 估算、风险与回退 初估 **2~3 人日**(准备脚本与资源 pin、v12 迁移与导入、查询合并、面板、测试与文档;是规划参考,不是排期承诺)。主要风险:ECDICT 的数据来源为公开资料整理,虽仓库为 MIT,但**再分发前仍需自行评估**;子集口径会漏掉 WordNet 与考试标签都未覆盖的词;音标规范化的字符校验必须为 0,否则视为数据不合格。回退:v12 只增列与放开约束,回退二进制前把 `lexgo_schema.version` 写回 11、删除 ecdict 词典行即可,个人数据与 WordNet 不受影响。 ## 文档与证据 实施时更新 Architecture-and-Code-Map、Business-Rules-and-Glossary、Local-Development-and-Verification、Product-Requirements-Overview、Home 与 Deployment-and-Operations(备份体积);#15 的恢复演练复跑一次并记录词典 blob 的完整性。结束评论记录准备/导入命令、实测条目数与体积、音标字符校验结果、测试与 Wiki revision。原有 WordNet 资源 pin 与 #6 的导入契约保持不变。 Gitea MCP 仍指向其他站点,沿用目标站点 API 回退;凭据仅从既有安全配置读入进程。
Author
Owner

实施完成,待验收

交付内容

  • 资源准备(scripts/dict_prepare.py,仅工具链):从三个 sha256 pin 的源显式准备英汉归档。
    实测产出 82,721 条中文释义、3,003,208 字节(sha256 a4f4ab972c6e233e39909a861015c99ad7943e8db24353afc9cc9d8160dded24),
    条目数落在 pin 容差内、音标字符集校验通过才写出;产物不入库,仓库只保存
    server/zh-dictionary-resource.json(pin)与两份许可证(ECDICT MIT、CMUdict BSD-2)。
  • 音标分层(不做语义猜测):CMUdict ARPAbet→IPA 固定映射 35,799 条(curiosity /kjˌʊɹiˈɑːsəti/、
    cat /kæt/、guard /ɡɑɹd/);ECDICT 记法仅做字符级规范化并标注来源 30,580 条;
    两个来源都不可靠就不显示 16,342 条。含 ^(丢失首音,如 grok [^rɔk])或其它非 IPA 字符的记法
    整条丢弃 1,038 条。
  • schema v12:addDictionaryProvider 增加 provider(默认 wordnet)、
    dropDictionarySingleSlotCheck 从 information_schema 查到单行 CHECK 后删除;两步都带条件守卫,
    可重放、可回退。槽位 1 = WordNet、2 = 英汉词典。
  • 查词合并:中文释义在前、英英释义随后,resources 列出全部启用词典(resource 仍指 WordNet 以兼容);
    屈折形经 WordNet lemma 解析后回查中文词典(dogs → 狗),但音标不复制到屈折形;
    任一本停用/损坏时降级为只用另一本,都不可用时仍是 resource_missing。
  • 界面:学习端查词面板在词形旁显示 /音标/、每个义项显示中文释义(多行可滚动),
    面板底部列出词典来源;管理端可区分英英/英汉两种词典并分别启停,导入时按服务端给出的规范选择词典类型。

测试(全部真实执行)

范围 结果
Go(LEXGO_TEST_DB_NAME=lexgo_test_issue40 python scripts/server.py test-integration) 96 项通过(新增 4 项:解析与查找、未审资源拒绝、合并顺序、两词典真实导入与独立启停)
学习端单测 npx vitest --run 159 项通过 + vue-tsc --build、pnpm run build 通过
学习端 e2e npx playwright test 26 项通过(含 390×844 触摸视口下查词面板不溢出的既有检查,并在阅读用例中断言音标、中文释义与两家词典顺序)
管理端 npx pnpm test / lint 32 项通过 / 无告警
治理 python -m unittest discover -s tests / harness.py check --strict 65 项通过 / 通过
真实 API .local/verify-issue40-api.py(lexgo_dev,虚构账号与文本) 28 项检查通过:导入、库内字节与文件 sha256 一致、合并显示、opens/cats 屈折形、分别停用后降级、双双停用后 resource_missing、恢复后再次可查

迁移演练:lexgo_dev 已执行 python scripts/server.py migrate 升到 v12;迁移后旧二进制拒绝启动并提示先迁移
(/d/supervisord/lexgo-api_err.log),重新构建后恢复正常——这是有意的版本保护,不是缺陷。

未验证或未包含

  • 发音音频(用户已澄清只要音标)、整句翻译、汉英方向均不在本单范围。
  • 真机触摸与浏览器音频解码等既有缺口沿用 #14/#21/#37 记录,本单未新增真机证据。
  • grok 等两个来源都不可靠的词不显示音标;若需要更强覆盖,需另引数据源(例如 Wiktionary/kaikki)并重新评估许可与体积。
  • 未做定时备份、多主机、HTTPS 的缺口沿用 #15,不因本单变化。

提交、文档与镜像

  • 提交:b1b2e6c(实现)、a412e00(文档);分支 feat/40-english-chinese-dictionary;PR #41(未合并)。
  • Wiki revision:Architecture-and-Code-Map 8cc11b2f、Business-Rules-and-Glossary ba03226b、
    Local-Development-and-Verification afcd40ee、Product-Requirements-Overview 5c7b0b49、
    Deployment-and-Operations 2fa9c30e、Home bbea927c、Project-Profile e61817b9。
  • 核心镜像:docs/ 已按上述 revision 导出,harness.py sync --check 通过。
  • Gitea MCP 仍指向其他站点,本次继续使用目标站点 API 回退;凭据只从既有安全配置读入进程。

请验收;确认后我再做验收记录、镜像复核、fast-forward 合并与工单关闭。

## 实施完成,待验收 ### 交付内容 - **资源准备**(`scripts/dict_prepare.py`,仅工具链):从三个 sha256 pin 的源显式准备英汉归档。 实测产出 **82,721 条**中文释义、**3,003,208 字节**(sha256 `a4f4ab972c6e233e39909a861015c99ad7943e8db24353afc9cc9d8160dded24`), 条目数落在 pin 容差内、音标字符集校验通过才写出;产物不入库,仓库只保存 `server/zh-dictionary-resource.json`(pin)与两份许可证(ECDICT MIT、CMUdict BSD-2)。 - **音标分层**(不做语义猜测):CMUdict ARPAbet→IPA 固定映射 **35,799** 条(`curiosity /kjˌʊɹiˈɑːsəti/`、 `cat /kæt/`、`guard /ɡɑɹd/`);ECDICT 记法仅做字符级规范化并标注来源 **30,580** 条; 两个来源都不可靠就不显示 **16,342** 条。含 `^`(丢失首音,如 `grok [^rɔk]`)或其它非 IPA 字符的记法 整条丢弃 **1,038** 条。 - **schema v12**:`addDictionaryProvider` 增加 `provider`(默认 `wordnet`)、 `dropDictionarySingleSlotCheck` 从 `information_schema` 查到单行 CHECK 后删除;两步都带条件守卫, 可重放、可回退。槽位 1 = WordNet、2 = 英汉词典。 - **查词合并**:中文释义在前、英英释义随后,`resources` 列出全部启用词典(`resource` 仍指 WordNet 以兼容); 屈折形经 WordNet lemma 解析后回查中文词典(`dogs` → 狗),但**音标不复制到屈折形**; 任一本停用/损坏时降级为只用另一本,都不可用时仍是 `resource_missing`。 - **界面**:学习端查词面板在词形旁显示 `/音标/`、每个义项显示中文释义(多行可滚动), 面板底部列出词典来源;管理端可区分英英/英汉两种词典并分别启停,导入时按服务端给出的规范选择词典类型。 ### 测试(全部真实执行) | 范围 | 结果 | |---|---| | Go(`LEXGO_TEST_DB_NAME=lexgo_test_issue40 python scripts/server.py test-integration`) | **96 项通过**(新增 4 项:解析与查找、未审资源拒绝、合并顺序、两词典真实导入与独立启停) | | 学习端单测 `npx vitest --run` | **159 项通过** + `vue-tsc --build`、`pnpm run build` 通过 | | 学习端 e2e `npx playwright test` | **26 项通过**(含 390×844 触摸视口下查词面板不溢出的既有检查,并在阅读用例中断言音标、中文释义与两家词典顺序) | | 管理端 `npx pnpm test` / `lint` | **32 项通过** / 无告警 | | 治理 `python -m unittest discover -s tests` / `harness.py check --strict` | 65 项通过 / 通过 | | 真实 API `.local/verify-issue40-api.py`(lexgo_dev,虚构账号与文本) | **28 项检查通过**:导入、库内字节与文件 sha256 一致、合并显示、`opens`/`cats` 屈折形、分别停用后降级、双双停用后 `resource_missing`、恢复后再次可查 | 迁移演练:`lexgo_dev` 已执行 `python scripts/server.py migrate` 升到 v12;迁移后**旧二进制拒绝启动并提示先迁移** (`/d/supervisord/lexgo-api_err.log`),重新构建后恢复正常——这是有意的版本保护,不是缺陷。 ### 未验证或未包含 - 发音**音频**(用户已澄清只要音标)、整句翻译、汉英方向均不在本单范围。 - 真机触摸与浏览器音频解码等既有缺口沿用 #14/#21/#37 记录,本单未新增真机证据。 - `grok` 等两个来源都不可靠的词不显示音标;若需要更强覆盖,需另引数据源(例如 Wiktionary/kaikki)并重新评估许可与体积。 - 未做定时备份、多主机、HTTPS 的缺口沿用 #15,不因本单变化。 ### 提交、文档与镜像 - 提交:`b1b2e6c`(实现)、`a412e00`(文档);分支 `feat/40-english-chinese-dictionary`;**PR #41**(未合并)。 - Wiki revision:Architecture-and-Code-Map `8cc11b2f`、Business-Rules-and-Glossary `ba03226b`、 Local-Development-and-Verification `afcd40ee`、Product-Requirements-Overview `5c7b0b49`、 Deployment-and-Operations `2fa9c30e`、Home `bbea927c`、Project-Profile `e61817b9`。 - 核心镜像:`docs/` 已按上述 revision 导出,`harness.py sync --check` 通过。 - Gitea MCP 仍指向其他站点,本次继续使用目标站点 API 回退;凭据只从既有安全配置读入进程。 请验收;确认后我再做验收记录、镜像复核、fast-forward 合并与工单关闭。
Author
Owner

#40 状态:待验收(2026-09-16)

契约与完整证据见评论 8232;分支 feat/40-english-chinese-dictionary,PR #41 未合并,等待用户验收。

(本条修正上一条评论因 shell 转义丢失的分支名文字,内容一致。)

## #40 状态:待验收(2026-09-16) 契约与完整证据见评论 [8232](https://git.ilapage.cn/OPC/lexgo/issues/40#issuecomment-8232);分支 feat/40-english-chinese-dictionary,PR [#41](https://git.ilapage.cn/OPC/lexgo/pulls/41) **未合并**,等待用户验收。 (本条修正上一条评论因 shell 转义丢失的分支名文字,内容一致。)
Author
Owner

#40 验收通过(2026-09-16)

用户 2026-09-16 回复「#32 #40 验收通过、#42 验收通过」,本单验收结论如下。

  • 合入:PR #41 以 rebase-ff 合入 main,提交 b1b2e6c(实现)与 a412e00(文档)。
  • 最终状态:英汉词典(ECDICT 常用子集 82,721 条、3.0 MB)与 CMUdict IPA 音标随查询生效;
    schema v12(provider 列 + 放开单行约束,条件守卫、可重放);两本词典可分别启停,中文释义在前、英英释义随后;
    屈折形经 WordNet lemma 回查中文但不复制词目音标;音标来源可追溯(cmudict IPA / ecdict 记法),不可靠不显示。
  • 合并后在开发实例复验:lexgo_dev schema v12、两本词典在库(wordnet / ecdict 82721 条)、
    查词返回音标与中文释义,均通过。
  • 测试:Go 96 项、学习端 159 单测 + 26 e2e、管理端 32 项、治理 65 项、真实 API 28 项检查。
  • Wiki revision:Architecture 8cc11b2f、Business-Rules ba03226b、Local-Development afcd40ee、
    Product-Requirements 5c7b0b49、Deployment-and-Operations 2fa9c30e、Home e6e3b2a9、Project-Profile a482d5ba;
    镜像随验收提交 42945de 导出并复核一致。
  • 遗留(已记录,不在本单):发音音频、整句翻译、汉英方向;grok 等两来源都不可靠的词不显示音标;
    真机触摸与浏览器音频解码缺口沿用 #14/#21/#37。

工单关闭。

## #40 验收通过(2026-09-16) 用户 2026-09-16 回复「#32 #40 验收通过、#42 验收通过」,本单验收结论如下。 - 合入:PR [#41](https://git.ilapage.cn/OPC/lexgo/pulls/41) 以 rebase-ff 合入 main,提交 `b1b2e6c`(实现)与 `a412e00`(文档)。 - 最终状态:英汉词典(ECDICT 常用子集 82,721 条、3.0 MB)与 CMUdict IPA 音标随查询生效; schema **v12**(`provider` 列 + 放开单行约束,条件守卫、可重放);两本词典可分别启停,中文释义在前、英英释义随后; 屈折形经 WordNet lemma 回查中文但不复制词目音标;音标来源可追溯(`cmudict` IPA / `ecdict` 记法),不可靠不显示。 - 合并后在开发实例复验:`lexgo_dev` schema v12、两本词典在库(wordnet / ecdict 82721 条)、 查词返回音标与中文释义,均通过。 - 测试:Go 96 项、学习端 159 单测 + 26 e2e、管理端 32 项、治理 65 项、真实 API 28 项检查。 - Wiki revision:Architecture `8cc11b2f`、Business-Rules `ba03226b`、Local-Development `afcd40ee`、 Product-Requirements `5c7b0b49`、Deployment-and-Operations `2fa9c30e`、Home `e6e3b2a9`、Project-Profile `a482d5ba`; 镜像随验收提交 `42945de` 导出并复核一致。 - 遗留(已记录,不在本单):发音音频、整句翻译、汉英方向;`grok` 等两来源都不可靠的词不显示音标; 真机触摸与浏览器音频解码缺口沿用 #14/#21/#37。 工单关闭。
ila closed this issue 2026-09-16 21:58:14 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/lexgo#40