@kensio/pinyinjs 1.9.9 → 1.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/NOTICE +7 -0
  2. package/README.md +28 -9
  3. package/data/core.entries +49 -48
  4. package/data/core.freq +0 -0
  5. package/data/core.keys +1 -0
  6. package/data/full.counts +0 -0
  7. package/data/full.entries +17438 -17431
  8. package/data/full.freq +0 -0
  9. package/data/full.keys +7 -0
  10. package/data/manifest.json +19 -17
  11. package/data/script.map +5 -3
  12. package/data/standard.entries +3653 -3652
  13. package/data/standard.freq +0 -0
  14. package/data/standard.keys +1 -0
  15. package/dist/cli/lookup-commands.d.ts.map +1 -1
  16. package/dist/cli/lookup-commands.js +2 -44
  17. package/dist/cli/lookup-commands.js.map +1 -1
  18. package/dist/cli/lookup-entry.d.ts +12 -0
  19. package/dist/cli/lookup-entry.d.ts.map +1 -0
  20. package/dist/cli/lookup-entry.js +55 -0
  21. package/dist/cli/lookup-entry.js.map +1 -0
  22. package/dist/dictionary/artifact-format.d.ts +20 -1
  23. package/dist/dictionary/artifact-format.d.ts.map +1 -1
  24. package/dist/dictionary/artifact-format.js +37 -0
  25. package/dist/dictionary/artifact-format.js.map +1 -1
  26. package/dist/dictionary/artifact-read.d.ts.map +1 -1
  27. package/dist/dictionary/artifact-read.js +3 -7
  28. package/dist/dictionary/artifact-read.js.map +1 -1
  29. package/dist/dictionary/artifact.d.ts.map +1 -1
  30. package/dist/dictionary/artifact.js +2 -2
  31. package/dist/dictionary/artifact.js.map +1 -1
  32. package/dist/dictionary/build-assertions.d.ts.map +1 -1
  33. package/dist/dictionary/build-assertions.js +2 -0
  34. package/dist/dictionary/build-assertions.js.map +1 -1
  35. package/dist/dictionary/cedict-senses.d.ts +4 -3
  36. package/dist/dictionary/cedict-senses.d.ts.map +1 -1
  37. package/dist/dictionary/cedict-senses.js +7 -4
  38. package/dist/dictionary/cedict-senses.js.map +1 -1
  39. package/dist/dictionary/character-defaults.d.ts +8 -0
  40. package/dist/dictionary/character-defaults.d.ts.map +1 -1
  41. package/dist/dictionary/character-defaults.js +20 -0
  42. package/dist/dictionary/character-defaults.js.map +1 -1
  43. package/dist/dictionary/dictionary-entry.d.ts +8 -0
  44. package/dist/dictionary/dictionary-entry.d.ts.map +1 -1
  45. package/dist/dictionary/dictionary-entry.js +3 -1
  46. package/dist/dictionary/dictionary-entry.js.map +1 -1
  47. package/dist/dictionary/entry-invariants.d.ts +6 -0
  48. package/dist/dictionary/entry-invariants.d.ts.map +1 -1
  49. package/dist/dictionary/entry-invariants.js +0 -27
  50. package/dist/dictionary/entry-invariants.js.map +1 -1
  51. package/dist/dictionary/entry.d.ts +8 -0
  52. package/dist/dictionary/entry.d.ts.map +1 -1
  53. package/dist/dictionary/entry.js.map +1 -1
  54. package/dist/dictionary/locale-invariants.d.ts +3 -0
  55. package/dist/dictionary/locale-invariants.d.ts.map +1 -0
  56. package/dist/dictionary/locale-invariants.js +52 -0
  57. package/dist/dictionary/locale-invariants.js.map +1 -0
  58. package/dist/dictionary/locale.d.ts +5 -1
  59. package/dist/dictionary/locale.d.ts.map +1 -1
  60. package/dist/dictionary/locale.js +6 -1
  61. package/dist/dictionary/locale.js.map +1 -1
  62. package/dist/dictionary/merge-types.d.ts +16 -0
  63. package/dist/dictionary/merge-types.d.ts.map +1 -1
  64. package/dist/dictionary/merge-types.js +2 -0
  65. package/dist/dictionary/merge-types.js.map +1 -1
  66. package/dist/dictionary/merge-word.js +7 -6
  67. package/dist/dictionary/merge-word.js.map +1 -1
  68. package/dist/dictionary/merge.d.ts.map +1 -1
  69. package/dist/dictionary/merge.js +18 -4
  70. package/dist/dictionary/merge.js.map +1 -1
  71. package/dist/dictionary/reference-readings.d.ts +21 -0
  72. package/dist/dictionary/reference-readings.d.ts.map +1 -0
  73. package/dist/dictionary/reference-readings.js +86 -0
  74. package/dist/dictionary/reference-readings.js.map +1 -0
  75. package/dist/dictionary/standard-readings.d.ts +42 -0
  76. package/dist/dictionary/standard-readings.d.ts.map +1 -0
  77. package/dist/dictionary/standard-readings.js +113 -0
  78. package/dist/dictionary/standard-readings.js.map +1 -0
  79. package/dist/dictionary/taiwan-notes.d.ts +13 -0
  80. package/dist/dictionary/taiwan-notes.d.ts.map +1 -0
  81. package/dist/dictionary/taiwan-notes.js +26 -0
  82. package/dist/dictionary/taiwan-notes.js.map +1 -0
  83. package/dist/dictionary/taiwan-reading.d.ts +22 -2
  84. package/dist/dictionary/taiwan-reading.d.ts.map +1 -1
  85. package/dist/dictionary/taiwan-reading.js +94 -25
  86. package/dist/dictionary/taiwan-reading.js.map +1 -1
  87. package/dist/dictionary/taiwan-settle.d.ts +22 -0
  88. package/dist/dictionary/taiwan-settle.d.ts.map +1 -0
  89. package/dist/dictionary/taiwan-settle.js +47 -0
  90. package/dist/dictionary/taiwan-settle.js.map +1 -0
  91. package/dist/search/match-readings.d.ts +2 -2
  92. package/dist/search/match-readings.d.ts.map +1 -1
  93. package/dist/search/match-readings.js +12 -7
  94. package/dist/search/match-readings.js.map +1 -1
  95. package/dist/sources/moe-workbook.d.ts +10 -0
  96. package/dist/sources/moe-workbook.d.ts.map +1 -0
  97. package/dist/sources/moe-workbook.js +89 -0
  98. package/dist/sources/moe-workbook.js.map +1 -0
  99. package/dist/sources/moe.d.ts +58 -0
  100. package/dist/sources/moe.d.ts.map +1 -0
  101. package/dist/sources/moe.js +79 -0
  102. package/dist/sources/moe.js.map +1 -0
  103. package/dist/sources/xlsx.d.ts +20 -0
  104. package/dist/sources/xlsx.d.ts.map +1 -0
  105. package/dist/sources/xlsx.js +78 -0
  106. package/dist/sources/xlsx.js.map +1 -0
  107. package/package.json +1 -1
@@ -1,10 +1,3 @@
1
- /**
2
- * What must hold of an entry's own fields.
3
- *
4
- * The proper noun bit and the 繁體 form are both derived rather than taken from
5
- * one source, so each is asserted where the derivation is known to be delicate.
6
- */
7
- import { writeSyllable } from "../syllable/syllable.js";
8
1
  export const ENTRY_INVARIANTS = [
9
2
  {
10
3
  description: "北京 is a proper noun (jieba POS carried through)",
@@ -65,26 +58,6 @@ export const ENTRY_INVARIANTS = [
65
58
  : `no longer proper nouns: ${wrong.join(", ")}`;
66
59
  },
67
60
  },
68
- {
69
- // The gap composeLocaleDeltas closes, and the two ways it must not close
70
- // it. 運行狀況 contains the marked word 行狀 and cuts elsewhere; 一个个地
71
- // ends in a character whose delta is a different sense of 地 entirely.
72
- description: "垃圾分類 inherits 垃圾's 國語 reading, 運行狀況 inherits nothing",
73
- check: (dictionary) => {
74
- const taiwan = (word) => dictionary
75
- .get(word)
76
- ?.readings.tw?.map((syllable) => writeSyllable(syllable))
77
- .join(" ");
78
- const composed = taiwan("垃圾分类");
79
- if (composed !== "lè sè fēn lèi") {
80
- return `垃圾分类 reads ${composed ?? "nothing"} in zh-TW, expected lè sè fēn lèi`;
81
- }
82
- const wrong = ["运行状况", "一个个地", "相亲相爱"].filter((word) => taiwan(word) !== undefined);
83
- return wrong.length === 0
84
- ? undefined
85
- : `composed a zh-TW reading for: ${wrong.join(", ")}`;
86
- },
87
- },
88
61
  {
89
62
  description: "头发 derives 頭髮 rather than 頭發",
90
63
  check: (dictionary) => {
@@ -1 +1 @@
1
- {"version":3,"file":"entry-invariants.js","sourceRoot":"","sources":["../../src/dictionary/entry-invariants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entry-invariants.js","sourceRoot":"","sources":["../../src/dictionary/entry-invariants.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,gBAAgB,GAA8B;IACzD;QACE,WAAW,EAAE,iDAAiD;QAC9D,KAAK,EAAE,CAAC,UAA2B,EAAsB,EAAE,CACzD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,YAAY,KAAK,IAAI;YACzC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,mCAAmC;KAC1C;IACD;QACE,qEAAqE;QACrE,uEAAuE;QACvE,0CAA0C;QAC1C,WAAW,EACT,kDAAkD;QACpD,KAAK,EAAE,CAAC,UAA2B,EAAsB,EAAE;YACzD,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,CACzD,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,YAAY,KAAK,IAAI,CACtD,CAAC;YACF,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;gBACvB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,2BAA2B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,CAAC;KACF;IACD;QACE,kEAAkE;QAClE,uEAAuE;QACvE,2DAA2D;QAC3D,WAAW,EAAE,8CAA8C;QAC3D,KAAK,EAAE,CAAC,UAA2B,EAAsB,EAAE;YACzD,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,CACtD,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,YAAY,KAAK,IAAI,CACtD,CAAC;YACF,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;gBACvB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,2BAA2B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,CAAC;KACF;IACD;QACE,qEAAqE;QACrE,oEAAoE;QACpE,uEAAuE;QACvE,wEAAwE;QACxE,yBAAyB;QACzB,WAAW,EACT,yDAAyD;QAC3D,KAAK,EAAE,CAAC,UAA2B,EAAsB,EAAE;YACzD,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,CAC1C,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,YAAY,KAAK,IAAI,CACtD,CAAC;YACF,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,CACtC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,YAAY,KAAK,IAAI,CACtD,CAAC;YACF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO,2BAA2B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,CAAC;YACD,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC;gBACzB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,2BAA2B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,CAAC;KACF;IACD;QACE,mEAAmE;QACnE,qEAAqE;QACrE,WAAW,EAAE,wDAAwD;QACrE,KAAK,EAAE,CAAC,UAA2B,EAAsB,EAAE;YACzD,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,CACtC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,YAAY,KAAK,IAAI,CACtD,CAAC;YACF,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;gBACvB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,2BAA2B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,CAAC;KACF;IACD;QACE,WAAW,EAAE,8BAA8B;QAC3C,KAAK,EAAE,CAAC,UAA2B,EAAsB,EAAE;YACzD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;YACxC,OAAO,IAAI,KAAK,IAAI;gBAClB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,cAAc,IAAI,IAAI,SAAS,eAAe,CAAC;QACrD,CAAC;KACF;CACF,CAAC"}
@@ -10,6 +10,14 @@ export interface EntryReadings {
10
10
  readonly cn: readonly Syllable[];
11
11
  /** 國語, only when it differs from {@link EntryReadings.cn}. */
12
12
  readonly tw?: readonly Syllable[];
13
+ /**
14
+ * Other 國語 readings, which hold for one sense only.
15
+ *
16
+ * The default stays {@link EntryReadings.tw}, or {@link EntryReadings.cn}
17
+ * where that is absent, because nothing at the word says which sense a
18
+ * given occurrence is: 和 is `hé` with `hàn` here.
19
+ */
20
+ readonly twAlternates?: readonly (readonly Syllable[])[];
13
21
  }
14
22
  /**
15
23
  * One word in the merged dictionary.
@@ -1 +1 @@
1
- {"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/dictionary/entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,EAAE,SAAS,QAAQ,EAAE,CAAC;IACjC,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;CACnC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,mBAAmB;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,oEAAoE;IACpE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,QAAQ,EAAE,CAAC,EAAE,CAAC;CACxD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAOvE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,SAAS,QAAQ,EAAE,EACzB,KAAK,EAAE,SAAS,QAAQ,EAAE,GACzB,OAAO,CAQT"}
1
+ {"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/dictionary/entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,EAAE,SAAS,QAAQ,EAAE,CAAC;IACjC,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,QAAQ,EAAE,CAAC,EAAE,CAAC;CAC1D;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,mBAAmB;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,oEAAoE;IACpE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,QAAQ,EAAE,CAAC,EAAE,CAAC;CACxD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAOvE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,SAAS,QAAQ,EAAE,EACzB,KAAK,EAAE,SAAS,QAAQ,EAAE,GACzB,OAAO,CAQT"}
@@ -1 +1 @@
1
- {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/dictionary/entry.ts"],"names":[],"mappings":"AAsEA;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAc,EAAE,KAAe;IAC5D,OAAO,CACL,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;QAC9B,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;QAC1B,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;QACxB,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,CACjD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAyB,EACzB,KAA0B;IAE1B,OAAO,CACL,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAC5B,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE;QAC1B,yEAAyE;QACzE,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,CAChD,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/dictionary/entry.ts"],"names":[],"mappings":"AA8EA;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAc,EAAE,KAAe;IAC5D,OAAO,CACL,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;QAC9B,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;QAC1B,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;QACxB,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,CACjD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAyB,EACzB,KAA0B;IAE1B,OAAO,CACL,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAC5B,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE;QAC1B,yEAAyE;QACzE,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,CAChD,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { BuildAssertion } from "./built-dictionary.js";
2
+ export declare const LOCALE_INVARIANTS: readonly BuildAssertion[];
3
+ //# sourceMappingURL=locale-invariants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locale-invariants.d.ts","sourceRoot":"","sources":["../../src/dictionary/locale-invariants.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,uBAAuB,CAAC;AAE7E,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAgDtD,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * What must hold of the zh-TW readings.
3
+ *
4
+ * The locale is a delta assembled from three sources and a composition pass,
5
+ * so a refresh of any of them can move it without anything else noticing.
6
+ */
7
+ import { writeSyllable } from "../syllable/syllable.js";
8
+ export const LOCALE_INVARIANTS = [
9
+ {
10
+ // The gap composeLocaleDeltas closes, and the two ways it must not close
11
+ // it. 運行狀況 contains the marked word 行狀 and cuts elsewhere; 一个个地
12
+ // ends in a character whose delta is a different sense of 地 entirely.
13
+ description: "垃圾分類 inherits 垃圾's 國語 reading, 運行狀況 inherits nothing",
14
+ check: (dictionary) => {
15
+ const taiwan = (word) => dictionary
16
+ .get(word)
17
+ ?.readings.tw?.map((syllable) => writeSyllable(syllable))
18
+ .join(" ");
19
+ const composed = taiwan("垃圾分类");
20
+ if (composed !== "lè sè fēn lèi") {
21
+ return `垃圾分类 reads ${composed ?? "nothing"} in zh-TW, expected lè sè fēn lèi`;
22
+ }
23
+ const wrong = ["运行状况", "一个个地", "相亲相爱"].filter((word) => taiwan(word) !== undefined);
24
+ return wrong.length === 0
25
+ ? undefined
26
+ : `composed a zh-TW reading for: ${wrong.join(", ")}`;
27
+ },
28
+ },
29
+ {
30
+ // 教育部's dictionaries are where these come from. CC-CEDICT marks none of
31
+ // the words, and its note on 和 is the conjunction's alone.
32
+ description: "星期 and 头发 read as 教育部 reads them, 和 keeps hé",
33
+ check: (dictionary) => {
34
+ const taiwan = (word) => dictionary
35
+ .get(word)
36
+ ?.readings.tw?.map((syllable) => writeSyllable(syllable))
37
+ .join(" ");
38
+ const wrong = [
39
+ ["星期", "xīng qí"],
40
+ ["头发", "tóu fǎ"],
41
+ ].filter(([word, expected]) => taiwan(word ?? "") !== expected);
42
+ if (wrong.length > 0) {
43
+ return `zh-TW reads ${wrong.map(([word]) => `${word ?? ""} as ${taiwan(word ?? "") ?? "nothing"}`).join(", ")}`;
44
+ }
45
+ const character = taiwan("和");
46
+ return character === undefined
47
+ ? undefined
48
+ : `和 reads ${character} in zh-TW, expected no delta`;
49
+ },
50
+ },
51
+ ];
52
+ //# sourceMappingURL=locale-invariants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locale-invariants.js","sourceRoot":"","sources":["../../src/dictionary/locale-invariants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,MAAM,CAAC,MAAM,iBAAiB,GAA8B;IAC1D;QACE,yEAAyE;QACzE,gEAAgE;QAChE,sEAAsE;QACtE,WAAW,EACT,sDAAsD;QACxD,KAAK,EAAE,CAAC,UAA2B,EAAsB,EAAE;YACzD,MAAM,MAAM,GAAG,CAAC,IAAY,EAAsB,EAAE,CAClD,UAAU;iBACP,GAAG,CAAC,IAAI,CAAC;gBACV,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;iBACxD,IAAI,CAAC,GAAG,CAAC,CAAC;YACf,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;gBACjC,OAAO,cAAc,QAAQ,IAAI,SAAS,mCAAmC,CAAC;YAChF,CAAC;YACD,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAC3C,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,CACrC,CAAC;YACF,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;gBACvB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,iCAAiC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1D,CAAC;KACF;IACD;QACE,wEAAwE;QACxE,2DAA2D;QAC3D,WAAW,EAAE,8CAA8C;QAC3D,KAAK,EAAE,CAAC,UAA2B,EAAsB,EAAE;YACzD,MAAM,MAAM,GAAG,CAAC,IAAY,EAAsB,EAAE,CAClD,UAAU;iBACP,GAAG,CAAC,IAAI,CAAC;gBACV,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;iBACxD,IAAI,CAAC,GAAG,CAAC,CAAC;YACf,MAAM,KAAK,GAAG;gBACZ,CAAC,IAAI,EAAE,SAAS,CAAC;gBACjB,CAAC,IAAI,EAAE,QAAQ,CAAC;aACjB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC;YAChE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO,eAAe,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,EAAE,OAAO,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClH,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9B,OAAO,SAAS,KAAK,SAAS;gBAC5B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,WAAW,SAAS,8BAA8B,CAAC;QACzD,CAAC;KACF;CACF,CAAC"}
@@ -30,6 +30,10 @@ export interface LocaleComposition {
30
30
  *
31
31
  * What survives all three is a homograph the data cannot see, which is what
32
32
  * {@link LOCALE_COMPOSITION_EXCLUSIONS} is for.
33
+ *
34
+ * `isStandard` names the compounds a dictionary of the standard already
35
+ * settles, which are never composed: its word for a compound outranks
36
+ * anything inferred from the compound's parts.
33
37
  */
34
- export declare function composeLocaleDeltas(entries: readonly DictionaryEntry[]): LocaleComposition;
38
+ export declare function composeLocaleDeltas(entries: readonly DictionaryEntry[], isStandard?: (entry: DictionaryEntry) => boolean): LocaleComposition;
35
39
  //# sourceMappingURL=locale.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../src/dictionary/locale.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,eAAe,EAAiB,MAAM,YAAY,CAAC;AAIjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AA6CvE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAYD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,eAAe,EAAE,GAClC,iBAAiB,CA8DnB"}
1
+ {"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../src/dictionary/locale.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,eAAe,EAAiB,MAAM,YAAY,CAAC;AAIjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AA6CvE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAYD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,eAAe,EAAE,EACnC,UAAU,GAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAqB,GAC5D,iBAAiB,CA+DnB"}
@@ -78,8 +78,12 @@ const ROUNDS = 4;
78
78
  *
79
79
  * What survives all three is a homograph the data cannot see, which is what
80
80
  * {@link LOCALE_COMPOSITION_EXCLUSIONS} is for.
81
+ *
82
+ * `isStandard` names the compounds a dictionary of the standard already
83
+ * settles, which are never composed: its word for a compound outranks
84
+ * anything inferred from the compound's parts.
81
85
  */
82
- export function composeLocaleDeltas(entries) {
86
+ export function composeLocaleDeltas(entries, isStandard = () => false) {
83
87
  const index = new ConstituentIndex(entries);
84
88
  // Only a compound containing a delta-carrying word can gain one, and there
85
89
  // are a few hundred such words against 461,555 entries. Enumerating each
@@ -96,6 +100,7 @@ export function composeLocaleDeltas(entries) {
96
100
  // Candidates are fixed after the first sweep: composing a delta never makes a
97
101
  // new compound eligible, only changes what an eligible one inherits.
98
102
  const candidates = entries.filter((entry) => entry.readings.tw === undefined &&
103
+ !isStandard(entry) &&
99
104
  isComposable(entry) &&
100
105
  hasMarkedConstituent(entry.hans, marked));
101
106
  const settled = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"locale.js","sourceRoot":"","sources":["../../src/dictionary/locale.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"locale.js","sourceRoot":"","sources":["../../src/dictionary/locale.ts"],"names":[],"mappings":"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"}
@@ -5,12 +5,14 @@
5
5
  * importing the merge itself.
6
6
  */
7
7
  import type { CedictEntry } from "../sources/cedict.js";
8
+ import type { MoeReading } from "../sources/moe.js";
8
9
  import type { JiebaEntry } from "../sources/jieba.js";
9
10
  import type { UnihanReadings, UnihanVariants } from "../sources/unihan.js";
10
11
  import type { Syllable } from "../syllable/syllable.js";
11
12
  import type { DictionaryEntry } from "./entry.js";
12
13
  import type { NameMassTable } from "./name-mass.js";
13
14
  import type { NameLookup } from "./proper-noun.js";
15
+ import type { ReferenceReadings } from "./reference-readings.js";
14
16
  import type { TraditionalTable } from "./traditional-table.js";
15
17
  /**
16
18
  * The parsed sources the merge combines.
@@ -21,6 +23,16 @@ export interface MergeSources {
21
23
  readonly phrase: ReadonlyMap<string, readonly string[]>;
22
24
  readonly cedict: readonly CedictEntry[];
23
25
  readonly jieba: ReadonlyMap<string, JiebaEntry>;
26
+ /**
27
+ * 教育部's readings, keyed by 繁體 headword. Absent, the zh-TW locale knows
28
+ * only what CC-CEDICT and Unihan mark.
29
+ */
30
+ readonly moe?: ReadonlyMap<string, readonly MoeReading[]>;
31
+ /**
32
+ * Readings a standard reference dictionary gives that the sources lack.
33
+ * Absent, the merge reads only what the sources give.
34
+ */
35
+ readonly reference?: ReferenceReadings;
24
36
  }
25
37
  /**
26
38
  * Counts describing what the merge did, for the build to report and check.
@@ -56,6 +68,8 @@ export interface MergeStats {
56
68
  readonly repairedConstituents: number;
57
69
  /** Entries carrying a zh-TW reading delta a source stated. */
58
70
  readonly taiwanReadings: number;
71
+ /** Of those, the ones 教育部's dictionary settled. */
72
+ readonly standardTaiwanReadings: number;
59
73
  /** Compounds given a zh-TW delta composed from their constituents. */
60
74
  readonly composedTaiwanReadings: number;
61
75
  /**
@@ -105,6 +119,7 @@ export interface WordSources {
105
119
  readonly unihanReadings: ReadonlyMap<string, UnihanReadings>;
106
120
  readonly traditional: TraditionalTable;
107
121
  readonly defaults: ReadonlyMap<string, readonly Syllable[]>;
122
+ readonly moe: ReadonlyMap<string, readonly MoeReading[]>;
108
123
  }
109
124
  /**
110
125
  * What one word contributed to the build's counts.
@@ -121,6 +136,7 @@ export interface WordTally {
121
136
  readonly scriptPairs: number;
122
137
  readonly variantSpellings: number;
123
138
  readonly taiwanReadings: number;
139
+ readonly standardTaiwanReadings: number;
124
140
  readonly properNounVetoes: number;
125
141
  readonly nameBoundaries: number;
126
142
  readonly characters: number;
@@ -1 +1 @@
1
- {"version":3,"file":"merge-types.d.ts","sourceRoot":"","sources":["../../src/dictionary/merge-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"merge-types.d.ts","sourceRoot":"","sources":["../../src/dictionary/merge-types.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export const NO_TALLY = {
8
8
  scriptPairs: 0,
9
9
  variantSpellings: 0,
10
10
  taiwanReadings: 0,
11
+ standardTaiwanReadings: 0,
11
12
  properNounVetoes: 0,
12
13
  nameBoundaries: 0,
13
14
  characters: 0,
@@ -25,6 +26,7 @@ export function addTally(total, tally) {
25
26
  scriptPairs: total.scriptPairs + tally.scriptPairs,
26
27
  variantSpellings: total.variantSpellings + tally.variantSpellings,
27
28
  taiwanReadings: total.taiwanReadings + tally.taiwanReadings,
29
+ standardTaiwanReadings: total.standardTaiwanReadings + tally.standardTaiwanReadings,
28
30
  properNounVetoes: total.properNounVetoes + tally.properNounVetoes,
29
31
  nameBoundaries: total.nameBoundaries + tally.nameBoundaries,
30
32
  characters: total.characters + tally.characters,
@@ -1 +1 @@
1
- {"version":3,"file":"merge-types.js","sourceRoot":"","sources":["../../src/dictionary/merge-types.ts"],"names":[],"mappings":"AAuIA;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAc;IACjC,sBAAsB,EAAE,CAAC;IACzB,YAAY,EAAE,CAAC;IACf,kBAAkB,EAAE,CAAC;IACrB,WAAW,EAAE,CAAC;IACd,gBAAgB,EAAE,CAAC;IACnB,cAAc,EAAE,CAAC;IACjB,gBAAgB,EAAE,CAAC;IACnB,cAAc,EAAE,CAAC;IACjB,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,CAAC;CACf,CAAC;AAYF;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAgB,EAAE,KAAgB;IACzD,OAAO;QACL,sBAAsB,EACpB,KAAK,CAAC,sBAAsB,GAAG,KAAK,CAAC,sBAAsB;QAC7D,YAAY,EAAE,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY;QACrD,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB;QACvE,WAAW,EAAE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;QAClD,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB;QACjE,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc;QAC3D,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB;QACjE,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc;QAC3D,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;QAC/C,WAAW,EAAE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;QAClD,WAAW,EAAE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;KACnD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"merge-types.js","sourceRoot":"","sources":["../../src/dictionary/merge-types.ts"],"names":[],"mappings":"AAuJA;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAc;IACjC,sBAAsB,EAAE,CAAC;IACzB,YAAY,EAAE,CAAC;IACf,kBAAkB,EAAE,CAAC;IACrB,WAAW,EAAE,CAAC;IACd,gBAAgB,EAAE,CAAC;IACnB,cAAc,EAAE,CAAC;IACjB,sBAAsB,EAAE,CAAC;IACzB,gBAAgB,EAAE,CAAC;IACnB,cAAc,EAAE,CAAC;IACjB,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,CAAC;CACf,CAAC;AAYF;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAgB,EAAE,KAAgB;IACzD,OAAO;QACL,sBAAsB,EACpB,KAAK,CAAC,sBAAsB,GAAG,KAAK,CAAC,sBAAsB;QAC7D,YAAY,EAAE,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY;QACrD,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB;QACvE,WAAW,EAAE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;QAClD,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB;QACjE,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc;QAC3D,sBAAsB,EACpB,KAAK,CAAC,sBAAsB,GAAG,KAAK,CAAC,sBAAsB;QAC7D,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB;QACjE,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc;QAC3D,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;QAC/C,WAAW,EAAE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;QAClD,WAAW,EAAE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;KACnD,CAAC;AACJ,CAAC"}
@@ -11,7 +11,7 @@ import { isSameReading } from "./entry.js";
11
11
  import { readAlignedReading } from "./reading.js";
12
12
  import { cedictReadingsOf } from "./cedict-senses.js";
13
13
  import { traditionalFormOf } from "./traditional-form.js";
14
- import { taiwanReadingOf } from "./taiwan-reading.js";
14
+ import { settleTaiwanReading } from "./taiwan-settle.js";
15
15
  import { properNounOf } from "./proper-noun.js";
16
16
  import { settleReading } from "./word-reading.js";
17
17
  import { NO_TALLY } from "./merge-types.js";
@@ -19,7 +19,7 @@ import { NO_TALLY } from "./merge-types.js";
19
19
  * Merge one word.
20
20
  */
21
21
  export function mergeWord(word, sources) {
22
- const { cedictByWord, cedictByHant, phrase, jieba, nameMass, names, unihanReadings, traditional, defaults, } = sources;
22
+ const { cedictByWord, cedictByHant, phrase, jieba, nameMass, names, traditional, defaults, } = sources;
23
23
  const cedictEntries = cedictByWord.get(word) ?? [];
24
24
  const cedictReadings = cedictReadingsOf(word, cedictEntries);
25
25
  // Every reading CC-CEDICT gives this spelling, under either script.
@@ -42,9 +42,10 @@ export function mergeWord(word, sources) {
42
42
  const reading = settled.reading;
43
43
  const aligned = settled.aligned;
44
44
  // ── 繁體: taken from CC-CEDICT, derived where it is silent ─
45
- const { senses, hant, hantVariants, isDerived } = traditionalFormOf(word, cedictEntries, reading, aligned, traditional);
45
+ const form = traditionalFormOf(word, cedictEntries, reading, aligned, traditional);
46
+ const { senses, hant, hantVariants, isDerived } = form;
46
47
  // ── zh-TW delta ───────────────────────────────────────────
47
- const taiwan = taiwanReadingOf(word, senses, senseReadings, reading, unihanReadings.get(word));
48
+ const taiwan = settleTaiwanReading(word, form, senseReadings, reading, sources);
48
49
  // ── Frequency, part of speech and the proper noun bit ─────
49
50
  const jiebaEntry = jieba.get(word);
50
51
  const { isProperNoun, boundaries, isVetoed } = properNounOf(word, jiebaEntry, cedictEntries, senses, reading, nameMass, names);
@@ -60,7 +61,7 @@ export function mergeWord(word, sources) {
60
61
  hans: word,
61
62
  hant,
62
63
  ...(hantVariants.length > 0 && { hantVariants }),
63
- readings: { cn: reading, ...(taiwan !== undefined && { tw: taiwan }) },
64
+ readings: { cn: reading, ...taiwan.readings },
64
65
  frequency: jiebaEntry?.frequency ?? 0,
65
66
  partOfSpeech: jiebaEntry?.partOfSpeech ?? "",
66
67
  isProperNoun,
@@ -79,7 +80,7 @@ export function mergeWord(word, sources) {
79
80
  derivedTraditional: isDerived ? 1 : 0,
80
81
  scriptPairs: hant === word ? 0 : 1,
81
82
  variantSpellings: hantVariants.length > 0 ? 1 : 0,
82
- taiwanReadings: taiwan === undefined ? 0 : 1,
83
+ ...taiwan.tally,
83
84
  properNounVetoes: isVetoed ? 1 : 0,
84
85
  nameBoundaries: boundaries.length > 0 ? 1 : 0,
85
86
  characters: isCharacter ? 1 : 0,
@@ -1 +1 @@
1
- {"version":3,"file":"merge-word.js","sourceRoot":"","sources":["../../src/dictionary/merge-word.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAwB,aAAa,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAmB,QAAQ,EAAoB,MAAM,kBAAkB,CAAC;AAI/E;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,OAAoB;IAC1D,MAAM,EACJ,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,KAAK,EACL,QAAQ,EACR,KAAK,EACL,cAAc,EACd,WAAW,EACX,QAAQ,GACT,GAAG,OAAO,CAAC;IAEZ,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACnD,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC7D,oEAAoE;IACpE,MAAM,aAAa,GAAG;QACpB,GAAG,cAAc;QACjB,GAAG,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KACxD,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,aAAa,GACjB,aAAa,KAAK,SAAS;QACzB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAE9C,MAAM,OAAO,GAAG,aAAa,CAC3B,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,cAAc,EACd,aAAa,CACd,CAAC;IACF,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,EAAE;YAC3D,KAAK,EAAE,QAAQ;SAChB,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAEhC,4DAA4D;IAC5D,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,iBAAiB,CACjE,IAAI,EACJ,aAAa,EACb,OAAO,EACP,OAAO,EACP,WAAW,CACZ,CAAC;IAEF,6DAA6D;IAC7D,MAAM,MAAM,GAAG,eAAe,CAC5B,IAAI,EACJ,MAAM,EACN,aAAa,EACb,OAAO,EACP,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CACzB,CAAC;IAEF,6DAA6D;IAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,YAAY,CACzD,IAAI,EACJ,UAAU,EACV,aAAa,EACb,MAAM,EACN,OAAO,EACP,QAAQ,EACR,KAAK,CACN,CAAC;IAEF,6DAA6D;IAC7D,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACnD,MAAM,UAAU,GAAG,WAAW;QAC5B,CAAC,CAAC,iBAAiB;aACd,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;aACzD,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,KAAK,GAAoB;QAC7B,IAAI,EAAE,IAAI;QACV,IAAI;QACJ,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;QAChD,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;QACtE,SAAS,EAAE,UAAU,EAAE,SAAS,IAAI,CAAC;QACrC,YAAY,EAAE,UAAU,EAAE,YAAY,IAAI,EAAE;QAC5C,YAAY;QACZ,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;QAC5D,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC;KAC7C,CAAC;IAEF,4EAA4E;IAC5E,4EAA4E;IAC5E,gDAAgD;IAChD,OAAO;QACL,KAAK;QACL,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE;YACL,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;YACtD,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,kBAAkB,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,WAAW,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,gBAAgB,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,cAAc,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,cAAc,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,WAAW,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChD,WAAW,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9C;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"merge-word.js","sourceRoot":"","sources":["../../src/dictionary/merge-word.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAwB,aAAa,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAmB,QAAQ,EAAoB,MAAM,kBAAkB,CAAC;AAI/E;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,OAAoB;IAC1D,MAAM,EACJ,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,KAAK,EACL,QAAQ,EACR,KAAK,EACL,WAAW,EACX,QAAQ,GACT,GAAG,OAAO,CAAC;IAEZ,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACnD,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC7D,oEAAoE;IACpE,MAAM,aAAa,GAAG;QACpB,GAAG,cAAc;QACjB,GAAG,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KACxD,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,aAAa,GACjB,aAAa,KAAK,SAAS;QACzB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAE9C,MAAM,OAAO,GAAG,aAAa,CAC3B,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,cAAc,EACd,aAAa,CACd,CAAC;IACF,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,EAAE;YAC3D,KAAK,EAAE,QAAQ;SAChB,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAEhC,4DAA4D;IAC5D,MAAM,IAAI,GAAG,iBAAiB,CAC5B,IAAI,EACJ,aAAa,EACb,OAAO,EACP,OAAO,EACP,WAAW,CACZ,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAEvD,6DAA6D;IAC7D,MAAM,MAAM,GAAG,mBAAmB,CAChC,IAAI,EACJ,IAAI,EACJ,aAAa,EACb,OAAO,EACP,OAAO,CACR,CAAC;IAEF,6DAA6D;IAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,YAAY,CACzD,IAAI,EACJ,UAAU,EACV,aAAa,EACb,MAAM,EACN,OAAO,EACP,QAAQ,EACR,KAAK,CACN,CAAC;IAEF,6DAA6D;IAC7D,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACnD,MAAM,UAAU,GAAG,WAAW;QAC5B,CAAC,CAAC,iBAAiB;aACd,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;aACzD,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,KAAK,GAAoB;QAC7B,IAAI,EAAE,IAAI;QACV,IAAI;QACJ,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;QAChD,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE;QAC7C,SAAS,EAAE,UAAU,EAAE,SAAS,IAAI,CAAC;QACrC,YAAY,EAAE,UAAU,EAAE,YAAY,IAAI,EAAE;QAC5C,YAAY;QACZ,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;QAC5D,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC;KAC7C,CAAC;IAEF,4EAA4E;IAC5E,4EAA4E;IAC5E,gDAAgD;IAChD,OAAO;QACL,KAAK;QACL,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE;YACL,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;YACtD,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,kBAAkB,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,WAAW,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,gBAAgB,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,GAAG,MAAM,CAAC,KAAK;YACf,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,cAAc,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,WAAW,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChD,WAAW,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9C;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/dictionary/merge.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAe,MAAM,kBAAkB,CAAC;AAE/E,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9E;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW,CAuE/D"}
1
+ {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/dictionary/merge.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAe,MAAM,kBAAkB,CAAC;AAE/E,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9E;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW,CAyF/D"}
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import { composeLocaleDeltas } from "./locale.js";
9
9
  import { indexCedict, senseLookup } from "./cedict-senses.js";
10
- import { buildCharacterDefaults } from "./character-defaults.js";
10
+ import { buildCharacterDefaults, withReferenceReadings, } from "./character-defaults.js";
11
11
  import { repairConstituentReadings } from "./constituent-repair.js";
12
12
  import { settleMeasureTones } from "./measure-tone.js";
13
13
  import { mergeWords, wordList } from "./merge-walk.js";
@@ -24,14 +24,24 @@ import { carryToTraditional } from "./traditional-carry.js";
24
24
  * see every entry at once.
25
25
  */
26
26
  export function mergeSources(sources) {
27
- const { phrase, cedict } = sources;
27
+ const { cedict } = sources;
28
28
  const cedictByWord = indexCedict(cedict, (entry) => entry.simplified);
29
29
  // Only ever read for {@link isOwnSense}. A 繁體-only headword keeps its senses
30
30
  // under whichever 简体 form each one simplifies to — 沈 is `chén` under 沉 and
31
31
  // 誰 is `shéi` under 谁 — so the 简体 index alone cannot say what a character
32
32
  // like that already reads in 普通话.
33
33
  const cedictByHant = indexCedict(cedict, (entry) => entry.traditional);
34
- const { traditional, defaults, reducedNeutrals } = buildCharacterDefaults(sources, cedictByWord, cedictByHant);
34
+ const ranked = buildCharacterDefaults(sources, cedictByWord, cedictByHant);
35
+ const { traditional, reducedNeutrals } = ranked;
36
+ // ── A reference dictionary's readings, after the sources' ──
37
+ // After the ranking, so a reading only print attests never sets a default,
38
+ // and its words are left out of the corpus mass that ranking counts. A word
39
+ // it reads replaces the phrase corpus's reading.
40
+ const defaults = withReferenceReadings(ranked.defaults, sources.reference?.characters ?? new Map());
41
+ const phrase = new Map([
42
+ ...sources.phrase,
43
+ ...(sources.reference?.words ?? []),
44
+ ]);
35
45
  const wordSources = {
36
46
  cedictByWord,
37
47
  cedictByHant,
@@ -42,6 +52,7 @@ export function mergeSources(sources) {
42
52
  unihanReadings: sources.unihanReadings,
43
53
  traditional,
44
54
  defaults,
55
+ moe: sources.moe ?? new Map(),
45
56
  };
46
57
  const { entries, rejected, counts } = mergeWords(wordList(phrase, defaults, cedictByWord, cedictByHant), wordSources);
47
58
  // ── 个 given one tone per position ─────────────────────────
@@ -57,7 +68,10 @@ export function mergeSources(sources) {
57
68
  // Last, because it segments each compound against the finished entries: the
58
69
  // readings, both scripts' keys and the frequencies all have to be settled
59
70
  // before a compound can be asked what it is made of.
60
- const localised = composeLocaleDeltas(held.entries);
71
+ // A word 教育部 lists has had its say, including where it said the word
72
+ // reads as in 普通话, so only the words it leaves out are composed.
73
+ const moe = sources.moe ?? new Map();
74
+ const localised = composeLocaleDeltas(held.entries, (entry) => [entry.hant, ...(entry.hantVariants ?? [])].some((spelling) => moe.has(spelling)));
61
75
  // ── 繁體 spellings given their 简体 word's tag and count ────
62
76
  // Last, and over the finished key set, because the pairing it reads is the
63
77
  // 繁體 form each entry names and every pass above can still change one.
@@ -1 +1 @@
1
- {"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/dictionary/merge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/dictionary/merge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Readings a standard reference dictionary gives that no source carries.
3
+ *
4
+ * Unihan, the phrase corpus and CC-CEDICT between them miss a tail of
5
+ * readings that print dictionaries list (a character's reading in one literary
6
+ * word, a surname, a place name, a dialect word). Where a source has the word
7
+ * and reads it from the character's everyday reading, the printed reading is
8
+ * the better evidence, and it replaces the corpus's.
9
+ */
10
+ /**
11
+ * A reference dictionary's readings, by character and by word.
12
+ */
13
+ export interface ReferenceReadings {
14
+ readonly characters: ReadonlyMap<string, readonly string[]>;
15
+ readonly words: ReadonlyMap<string, readonly string[]>;
16
+ }
17
+ /**
18
+ * The readings the build adds to the sources.
19
+ */
20
+ export declare const REFERENCE_READINGS: ReferenceReadings;
21
+ //# sourceMappingURL=reference-readings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference-readings.d.ts","sourceRoot":"","sources":["../../src/dictionary/reference-readings.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAC5D,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;CACxD;AAyED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,iBAGhC,CAAC"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Readings a standard reference dictionary gives that no source carries.
3
+ *
4
+ * Unihan, the phrase corpus and CC-CEDICT between them miss a tail of
5
+ * readings that print dictionaries list (a character's reading in one literary
6
+ * word, a surname, a place name, a dialect word). Where a source has the word
7
+ * and reads it from the character's everyday reading, the printed reading is
8
+ * the better evidence, and it replaces the corpus's.
9
+ */
10
+ /**
11
+ * A character's readings a standard reference dictionary gives and the
12
+ * sources lack, as tone-marked pinyin.
13
+ *
14
+ * They follow every reading a source gives, so they never set a character's
15
+ * default and only ever stand as alternates. The three characters no source
16
+ * reads at all take the reading here as their only one. A 繁體 form is listed
17
+ * beside its 简体 one, since each has a Unihan entry of its own.
18
+ *
19
+ * Two dialect readings are left out, 不 `dǔn` in 不子 and 泽 `duó` in 凌泽 (an
20
+ * icicle). Each character has one reading otherwise, and a second would mark
21
+ * every free-standing 不, and every 泽 in a given name, uncertain. 不子
22
+ * carries its reading as a word.
23
+ */
24
+ const CHARACTER_READINGS = new Map([
25
+ ["咹", ["ǎn"]],
26
+ ["㼎", ["báo"]],
27
+ ["箄", ["bēi"]],
28
+ ["屏", ["bīng"]], // 屏营
29
+ ["礤", ["cā"]],
30
+ ["倡", ["chāng"]], // 倡优
31
+ ["樘", ["chēng"]],
32
+ ["𡷫", ["chéng"]], // a surname
33
+ ["郗", ["chī"]], // a surname
34
+ ["佁", ["chì"]], // 佁儗
35
+ ["玼", ["cī"]],
36
+ ["粢", ["cī"]], // 粢饭
37
+ ["酂", ["cuán"]], // a place name
38
+ ["酇", ["cuán"]],
39
+ ["嵅", ["dǎn", "dǎng"]], // place names in Guangxi
40
+ ["碴", ["zhǎ"]], // 道碴
41
+ ["嘚", ["dè"]], // 嘚瑟
42
+ ["镫", ["dēng"]],
43
+ ["鐙", ["dēng"]],
44
+ ["螲", ["dié"]], // 螲𬠅
45
+ ["𭣧", ["dù"]],
46
+ ["柂", ["duò"]],
47
+ ["媠", ["duò"]],
48
+ ["欸", ["ē", "é", "ě", "è"]],
49
+ ["噁", ["è"]], // 二噁英
50
+ ["胲", ["gǎi"]],
51
+ ["𭥙", ["gǎng"]],
52
+ ["岗", ["gàng"]], // 岗尖, 岗口儿甜
53
+ ["崗", ["gàng"]],
54
+ ["瘩", ["dā"]], // 疙疙瘩瘩, 疙里疙瘩
55
+ ["𫵼", ["gēng"]],
56
+ ["碌", ["lū"]], // 骨碌碌
57
+ ]);
58
+ /**
59
+ * Words a standard reference dictionary reads, with the reading it gives, as
60
+ * the phrase corpus writes one. That is a syllable per character, tone-marked,
61
+ * and unmarked for 轻声. An 儿 read as 儿化 is `r5`, as CC-CEDICT writes it.
62
+ *
63
+ * Each either has no source at all or is read in the phrase corpus from its
64
+ * characters' everyday readings. 凌泽 is left out. It is a dialect word for an
65
+ * icicle, and as a word it would take every given name 凌泽 apart.
66
+ */
67
+ const WORD_READINGS = new Map([
68
+ ["粢饭", ["cī", "fàn"]],
69
+ ["道碴", ["dào", "zhǎ"]],
70
+ ["螲𬠅", ["dié", "dāng"]],
71
+ ["不子", ["dǔn", "zi"]],
72
+ ["岗尖", ["gàng", "jiān"]],
73
+ ["岗口儿甜", ["gàng", "kǒu", "r5", "tián"]],
74
+ ["疙疙瘩瘩", ["gē", "ge", "dā", "dā"]],
75
+ ["疙里疙瘩", ["gē", "li", "gē", "dā"]],
76
+ ["骨碌碌", ["gū", "lū", "lū"]],
77
+ ["骨碌碌地", ["gū", "lū", "lū", "de"]],
78
+ ]);
79
+ /**
80
+ * The readings the build adds to the sources.
81
+ */
82
+ export const REFERENCE_READINGS = {
83
+ characters: CHARACTER_READINGS,
84
+ words: WORD_READINGS,
85
+ };
86
+ //# sourceMappingURL=reference-readings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference-readings.js","sourceRoot":"","sources":["../../src/dictionary/reference-readings.ts"],"names":[],"mappings":"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"}