Every source.
Its edition, its licence, its limits.

10 openly licensed sources feed zimai. Each keeps its exact edition, licence and attribution. Every number here is computed from the data in this release as of 2026-10-15; a record count is not a count of meanings.

CC-CEDICT records
125,264
HanDeDict records
160,731
CC-Canto entries
34,335
Characters
8,243
Classical passages
9,629
Sentence pairs
39

At a glance

Edition dates are the upstream data dates zimai pinned. “Age” counts from that date to 2026-10-15.

SourceGives zimaiSizeEditionAgeLicenceOpen
CC-CEDICTMandarin–EnglishMandarin (Pinyin) → English · 繁 and 简125,264 records2026-10-132 daysCC BY-SA 4.0Search ↗
HanDeDictMandarin–GermanMandarin (Pinyin) → German · 繁 and 简160,731 records2026-10-141 dayCC BY-SA 3.0Search ↗
CC-CantoCantonese–EnglishCantonese (Jyutping) → English · 繁 and 简34,335 entries2017-02-029.7 yearsCC BY-SA 3.0Search ↗
UnihanCharacter propertiesCharacters · Mandarin and Cantonese readings · English gloss8,243 characters2025-07-2415 monthsUnicode License V3Search ↗
BabelStone IDSGraphical structureWritten form · all regions8,243 descriptions2025-06-2716 monthsPublisher permissionSearch ↗
Make Me a Hanzi · hanzi_lookupStroke order and handwritingWritten form · mainland stroke order9,507 characters——Arphic PL · LGPL-3.0Licence (Arphic PL)
PHONO-MLMiddle Chinese readingsMiddle Chinese (Guangyun-based transcription)7,127 readings2026-01-139 monthsCC BY 4.0Scholarship
CJKVI component analysisPhonetic componentsCharacter formation2,623 pairs2018-02-208.7 yearsGPL-2.0Scholarship
Kanseki RepositoryClassical witnessesLiterary Chinese · original witness script9,629 passages2017-03-239.6 yearsCC BY-SA 4.0Search ↗
TatoebaExample sentencesMandarin and Cantonese → English39 pairs2026-10-132 daysCC BY 2.0 FRSentence reader

Coverage compared

Words in three dictionaries

Distinct traditional headwords per source: CC-CEDICT 122,686, HanDeDict 159,362, CC-Canto 29,698. A shared written form is not a shared meaning; each source keeps its own senses.

HeadwordsCountShare
Only in CC-CEDICT61,325
Only in HanDeDict97,454
Only in CC-Canto18,565
CC-CEDICT and HanDeDict, not CC-Canto52,396
CC-CEDICT and CC-Canto, not HanDeDict1,621
HanDeDict and CC-Canto, not CC-CEDICT2,168
In all three7,344
Distinct headwords in any of the three240,873

Script forms: the traditional and simplified spellings differ in 77,917 CC-CEDICT records (62.2%), 104,413 HanDeDict records (65%) and 18,112 CC-Canto entries (52.8%). Both forms are searchable and displayed independently.

8,243 characters, field by field

Levels are the three levels of the 通用规范汉字表 (2013); “Other forms” are the 138 records outside it, mostly traditional forms. List level is not frequency.

Field sourceLevel 13,500Level 23,000Level 31,605Other forms138All8,243
Mandarin readingUnihan kMandarin3,500100%3,000100%1,605100%138100%8,243100%
English character glossUnihan kDefinition3,499100%2,98599.5%1,27379.3%138100%7,89595.8%
English gloss, any sourceUnihan, else CC-CEDICT (labelled)3,500100%3,000100%1,605100%138100%8,243100%
Cantonese readingUnihan kCantonese3,500100%2,99899.9%1,56697.6%138100%8,20299.5%
Graphical description (IDS)BabelStone IDS3,500100%3,000100%1,605100%138100%8,243100%
Single-character word recordCC-CEDICT3,500100%2,99499.8%1,30281.1%138100%7,93496.3%
German single-character recordHanDeDict3,500100%2,97099%1,08267.4%13497.1%7,68693.2%
Cantonese single-character entryCC-Canto2,95384.4%1,53851.3%18011.2%12993.5%4,80058.2%
Stroke orderMake Me a Hanzi3,500100%2,86895.6%49230.7%13597.8%6,99584.9%
Handwriting recognisablehanzi_lookup3,500100%2,86895.6%49230.7%13597.8%6,99584.9%
Middle Chinese readingPHONO-ML2,38468.1%1,84761.6%90856.6%13597.8%5,27464%
Attributed phonetic componentCJKVI analysis1,14532.7%1,03334.4%38624%5942.8%2,62331.8%
Occurs in the Classical witnessesKanripo1,68048%90030%27517.1%11079.7%2,96536%

Everyday Cantonese: a spot check

26 everyday Hong Kong words chosen by zimai’s editors, looked up as exact traditional headwords. This is not a frequency sample. 14 of 26 have no CC-Canto entry; where CC-CEDICT has the word, zimai shows its Mandarin–English record but never invents a Jyutping reading.

WordCC-CantoJyutping (CC-Canto)CC-CEDICTHanDeDict
你好——●●
多謝——●—
唔該●m4 goi1——
早晨——●●
點心——●●
飲茶●jam2 caa4●●
香港——●●
廣東話——●●
粵語——●●
佢哋●keoi5 dei6——
乜嘢——●—
咩嘢●me1 je5——
邊度●bin1 dou6——
喺——●●
冇●mou5 / mo5●●
嘅●koi3 / ge2 / ge3●●
睇●tai2 / dai6●●
食飯●sik6 faan6—●
返工●faan1 gung1●●
靚仔●leng3 zai2●—
巴士——●●
的士——●●
雪糕——●●
士多——●—
埋單●maai4 daan1●●
搭車——●●

Freshness

SourceEditionAgeAge barUpdate path
HanDeDict2026-10-141 dayThe pinned commit is still the newest upstream export (checked 2026-10-15). Exports appear after edits. Update path: re-import, rebuild the 804 partitions, rerun ranking.
Tatoeba2026-10-132 daysTatoeba publishes weekly exports. A pinned per-language export with a licence manifest is the update path; it is not yet imported.
CC-CEDICT2026-10-132 daysUpstream publishes a new export almost daily. Update path: re-import the pinned file, rebuild indexes, rerun the ranking script and the relevance benchmark.
PHONO-ML2026-01-139 monthsThe pinned commit is still upstream HEAD (checked 2026-10-15).
Unihan2025-07-2415 monthsUnicode publishes Unihan every September. Unihan 18.0.0 (2026) is available upstream and not imported; the claimed edition changes only with a real migration and diff.
BabelStone IDS2025-06-2716 monthsNo newer file since 2025-06-27 (checked 2026-10-15). Update path: re-select by code point and diff descriptions.
CJKVI component analysis2018-02-208.7 yearsNo upstream change since 2019.
Kanseki Repository2017-03-239.6 yearsAll eight pinned commits are still the newest on their edition branches (checked 2026-10-15).
CC-Canto2017-02-029.7 yearsFrozen upstream (last edition 2017-02-02, rechecked 2026-10-15). The same publisher’s separate “Cantonese readings for CC-CEDICT” file (2015-09-23, CC BY-SA 3.0) is the known path to Jyutping for CC-CEDICT words; it is not installed.

Speed

Lookup stays fast because no source loads as a whole. Each pack is split into small files; a search reads only the partitions its query needs, and a pack loads only when you choose its language. The lookup table every page starts with is 33 KB (8 KB gzip). Measured for 0.17.0 on 2026-10-15 (Chromium 152, macOS, device pixel ratio 1, loopback server): first Mandarin–English results painted in 15–57 ms after load and 13–36 ms warm; Mandarin–German in 13–36 ms. An English-only first visit made 0 German and 0 Cantonese pack requests. Loopback timings are a regression baseline, not a device measurement.

PackLoadsFilesOn diskTypical fileLargest file
CC-CEDICT search partitionsone or two per query, after the first keystroke34719.4 MB50 KB · 23 KB gz78 KB · 24 KB gz
CC-CEDICT word shardsfor visible results1,96038 MB20 KB · 4 KB gz23 KB · 5 KB gz
CC-CEDICT entry recordsserver-rendered entries4,352229.1 MB30 KB · 8 KB gz495 KB · 118 KB gz
HanDeDict search partitionsonly after Meanings in: Deutsch80430.5 MB34 KB · 13 KB gz176 KB · 30 KB gz
HanDeDict entry shardsonly for German results4,096210.2 MB53 KB · 10 KB gz89 KB · 16 KB gz
CC-Canto search partitionsonly with Chinese: Cantonese1354.6 MB35 KB · 10 KB gz35 KB · 13 KB gz
CC-Canto entry shardsonly for Cantonese results4,35079.6 MB10 KB · 2 KB gz198 KB · 38 KB gz
Character catalog shardsCharacters view and grid651.2 MB19 KB · 4 KB gz20 KB · 5 KB gz
Stroke-order filesone per character, on Play6,9637.2 MB1 KB · 655 B gz2 KB · 953 B gz
Handwriting recogniseronly when the pen pad opens3972 KB——
Classical search chunksonly in Classical search772.5 MB33 KB · 9 KB gz47 KB · 16 KB gz

Dictionaries

CC-CEDICT Mandarin–English

2026-10-13 08:59:07 UTC2 days oldCC BY-SA 4.0

Covers
125,264 source records (header declares 125,264) plus 136 separately attributed zimai editorial word records. 122,686 distinct traditional and 121,500 distinct simplified headwords; the two forms differ in 77,917 records. 13,528 single-character and 111,736 multi-character records; 199,737 definition segments, 1,460 with classifier notes, 20,199 proper names.Mandarin (Pinyin) → English · 繁 and 简
Licence & attribution
CC-CEDICT contributors; published by MDBG. Portions © 1997–98 Paul Andrew Denisowski (CEDICT).
How zimai transforms it
Every source row, numbered reading and definition boundary is kept with its SHA-256 line hash. Display Pinyin is derived; search indexes fold case and tone marks without merging records. The declared ranking (definition-grade v2) orders results; it is not frequency.
Known gaps
No Cantonese readings and no example sentences. Glosses are terse; a record is not a sense inventory. No usage frequency.
Freshness & update path
Edition 2026-10-13, 2 days before 2026-10-15. Upstream publishes a new export almost daily. Update path: re-import the pinned file, rebuild indexes, rerun the ranking script and the relevance benchmark.
Speed
CC-CEDICT search partitions: 347 files, 19.4 MB on disk, largest 78 KB (24 KB gzip); loads one or two per query, after the first keystroke. CC-CEDICT word shards: 1,960 files, 38 MB on disk, largest 23 KB (5 KB gzip); loads for visible results. CC-CEDICT entry records: 4,352 files, 229.1 MB on disk, largest 495 KB (118 KB gzip); loads server-rendered entries.

HanDeDict Mandarin–German

export 2026-10-14 02:30:01 UTC · commit 403a9538d3941 day oldCC BY-SA 3.0

Covers
160,731 records with original German definitions; 159,362 distinct traditional and 159,056 distinct simplified headwords (forms differ in 104,413 records). 3,165 “Bsp.” example pairs in 944 records; 120,241 records carry a part-of-speech label. Edit history: 380,013 logged versions by 48 usernames, 2011-05-28 to 2026-10-13.Mandarin (Pinyin) → German · 繁 and 简
Licence & attribution
HanDeDict contributors (per-entry usernames retained), published by Gábor L Ugray; originally supported by Chinesisch-Deutsche Gesellschaft e.V. Hamburg under Dr. Michael Klaus Engel and Jan Hefti.
How zimai transforms it
Active rows are parsed without changing spelling, reading or definition segments. Search-only aliases for case, umlauts, ß/ss and marked or numbered Pinyin. The full export with every contributor history ships unchanged as handedict.u8.gz. No English sense is merged in and no German is generated.
Known gaps
No Cantonese–German dictionary exists among the open sources; zimai says so instead of falling back. German “Bsp.” examples are held but not yet shown as sentences. The upstream README states CC BY-SA 2.0; the export header states 3.0, which zimai follows and documents.
Freshness & update path
Edition 2026-10-14, 1 day before 2026-10-15. The pinned commit is still the newest upstream export (checked 2026-10-15). Exports appear after edits. Update path: re-import, rebuild the 804 partitions, rerun ranking.
Speed
HanDeDict search partitions: 804 files, 30.5 MB on disk, largest 176 KB (30 KB gzip); loads only after Meanings in: Deutsch. HanDeDict entry shards: 4,096 files, 210.2 MB on disk, largest 89 KB (16 KB gzip); loads only for German results.

CC-Canto Cantonese–English

2017-02-029.7 years oldCC BY-SA 3.0

Covers
34,335 entries with source Jyutping; 29,698 distinct traditional and 29,476 distinct simplified headwords (forms differ in 18,112 entries). 34,276 entries also give Pinyin; 9,940 are single characters. 138 nonstandard readings are kept as written; 8,882 entries are marked by Pleco as adapted from CC-CEDICT.Cantonese (Jyutping) → English · 繁 and 简
Licence & attribution
Copyright © 2015–17 Pleco Inc.
How zimai transforms it
Exact forms, source Jyutping, Pinyin reference, definition segments, inline comments and line hashes retained. Slash-separated Jyutping alternatives are indexed separately; all six tone numbers stay significant and Jyutping never passes through Mandarin normalisation. No generated pronunciations.
Known gaps
CC-Canto was designed as a supplement to CC-CEDICT, so many everyday words that CC-CEDICT already lists have no CC-Canto entry: of the 122,686 CC-CEDICT traditional headwords, 8,965 also have one. See the spot check above. No newer edition has been published since 2017.
Freshness & update path
Edition 2017-02-02, 9.7 years before 2026-10-15. Frozen upstream (last edition 2017-02-02, rechecked 2026-10-15). The same publisher’s separate “Cantonese readings for CC-CEDICT” file (2015-09-23, CC BY-SA 3.0) is the known path to Jyutping for CC-CEDICT words; it is not installed.
Speed
CC-Canto search partitions: 135 files, 4.6 MB on disk, largest 35 KB (13 KB gzip); loads only with Chinese: Cantonese. CC-Canto entry shards: 4,350 files, 79.6 MB on disk, largest 198 KB (38 KB gzip); loads only for Cantonese results.

Characters

Unihan Character properties

Unicode 17.0.0 (data files dated 2025-07-24)15 months oldUnicode License V3

Covers
8,243 character records: all 8,105 of the 通用规范汉字表 (2013), identified by kTGH (3,500 / 3,000 / 1,605 by level), plus 138 other forms. 80,119 further reference values (dictionary locators, Japanese, Korean, Vietnamese, fanqie, Cangjie and more) on 8,243 characters.Characters · Mandarin and Cantonese readings · English gloss
Licence & attribution
Unicode, Inc.
How zimai transforms it
Values are selected by exact code point from the pinned archive and never copied to a variant. Standard-list position is list membership, not a frequency rank.
Known gaps
348 characters have no kDefinition gloss and 41 no kCantonese reading; those gaps stay visible. kCantonese is a character-level reading for collation, not a word pronunciation.
Freshness & update path
Edition 2025-07-24, 15 months before 2026-10-15. Unicode publishes Unihan every September. Unihan 18.0.0 (2026) is available upstream and not imported; the claimed edition changes only with a real migration and diff.
Speed
Character catalog shards: 65 files, 1.2 MB on disk, largest 20 KB (5 KB gzip); loads Characters view and grid.

BabelStone IDS Graphical structure

2025-06-27 · Unicode 16.016 months oldPublisher permission

Covers
8,243 exact descriptions for the catalog; 1,096 characters have region-specific alternatives (G, H, T, J, K, P, V tags kept); 32 are atomic.Written form · all regions
Licence & attribution
Andrew West (魏安) Publisher permits personal and commercial reuse; statement and source header retained..
How zimai transforms it
Descriptions and region tags are kept exactly; zimai reads them aloud in words (“left 氵, right 青”) and uses them for parts: search. Shape is not etymology.
Known gaps
Describes modern shapes only, not historical formation. Incomplete descriptions remain marked rather than guessed.
Freshness & update path
Edition 2025-06-27, 16 months before 2026-10-15. No newer file since 2025-06-27 (checked 2026-10-15). Update path: re-select by code point and diff descriptions.

Make Me a Hanzi · hanzi_lookup Stroke order and handwriting

medians via HanziLookupJS b21124f · recogniser hanzi_lookup 01f90c3Arphic PLLGPL-3.0

Covers
Medians for 9,507 characters; 6,995 of zimai’s 8,243 character pages have a stroke-order player (6,963 repackaged medians plus 32 dossier stroke files). The recogniser knows the same 9,507 characters.Written form · mainland stroke order
Licence & attribution
Shaunak Kishore (Make Me a Hanzi) from Arphic PL KaitiM GB and UKai (© 1999 Arphic Technology); recogniser by Gábor L Ugray after Jordan Kiang’s HanziLookup.
How zimai transforms it
Medians are repackaged one file per character with a notice; points and order unchanged. The recogniser ships unmodified as WebAssembly; zimai only prepares the input strokes and fuses two preparations.
Known gaps
1,248 catalog characters have no stroke data. Stroke order is the mainland (PRC) convention only; Taiwan and Hong Kong orders differ for some components.
Freshness & update path
Make Me a Hanzi’s data last changed in 2018. Update path for missing and Taiwan-standard characters: an Arphic-licensed extension such as animCJK (not installed).
Speed
Stroke-order files: 6,963 files, 7.2 MB on disk, largest 2 KB (953 B gzip); loads one per character, on Play. Handwriting recogniser: 3 files, 972 KB on disk; loads only when the pen pad opens.

Scholarship

PHONO-ML Middle Chinese readings

snapshot 103cd735 (commit 2026-01-13)9 months oldCC BY 4.0

Covers
7,127 readings on 5,274 exact character matches, with fanqie, categories and identifiers aligned.Middle Chinese (Guangyun-based transcription)
Licence & attribution
Guillaume Jacques and Alexandre Delaporte (CRLAO)
How zimai transforms it
Exact catalog intersection; semicolon-aligned fields split without normalisation; nothing copied across simplified/traditional variants.
Known gaps
Generated automatically from Guangyun and checked on a subset by its authors; errors remain possible. Characters outside the matched set have no reading.
Freshness & update path
Edition 2026-01-13, 9 months before 2026-10-15. The pinned commit is still upstream HEAD (checked 2026-10-15).

CJKVI component analysis Phonetic components

ids-analysis 18.02.208.7 years oldGPL-2.0

Covers
2,623 characters, each with one attributed “聲” (phonetic) component; source row, comment and reference number kept for every one.Character formation
Licence & attribution
Taichi Kawabata and the CJKVI project
How zimai transforms it
Only explicit single-character 聲 labels with both ends in the catalog. No 亦聲/省聲, no variant chains, no inferred semantic roles.
Known gaps
Traditional analyses are not invariably correct (Hill & List 2019). A phonetic series does not prove a shared word origin.
Freshness & update path
Edition 2018-02-20, 8.7 years before 2026-10-15. No upstream change since 2019.

Texts & sentences

Kanseki Repository Classical witnesses

8 pinned commits, retrieved 2026-10-149.6 years oldCC BY-SA 4.0

Covers
8 complete witnesses (論語、孟子、老子、莊子、荀子、韓非子、孫子、詩經): 279 reading sections, 9,629 passages, 350,752 Han occurrences of 5,184 distinct graphs.Literary Chinese · original witness script
Licence & attribution
Kanseki Repository (Kanripo) contributors; base-edition labels kept in each file.
How zimai transforms it
Text is split into passages without rewriting; quotations never follow the script preference. Teaching notes and excerpt translations are an AI-assisted pilot on top, labelled as such.
Known gaps
Contextual teaching notes cover 172 passages, not all. No full translation is imported.
Freshness & update path
Edition 2017-03-23, 9.6 years before 2026-10-15. All eight pinned commits are still the newest on their edition branches (checked 2026-10-15).
Speed
Classical search chunks: 77 files, 2.5 MB on disk, largest 47 KB (16 KB gzip); loads only in Classical search.

Tatoeba Example sentences

API snapshot 2026-10-132 days oldCC BY 2.0 FR

Covers
39 sentence pairs (33 Mandarin, 6 Cantonese) linked to 53 word records and 179 characters; 446 candidates were excluded for unresolved attribution.Mandarin and Cantonese → English
Licence & attribution
Individual Tatoeba contributors, credited per sentence and per translation. some sentences CC0; each sentence and translation keeps its own licence.
How zimai transforms it
Original spelling, punctuation and translations preserved; added-by contributor, editors and current owner resolved from the official logs.
Known gaps
A small demonstration set, not a corpus. No audio, no German translations yet.
Freshness & update path
Edition 2026-10-13, 2 days before 2026-10-15. Tatoeba publishes weekly exports. A pinned per-language export with a licence manifest is the update path; it is not yet imported.

How this page is made

Generated by scripts/build-catalog-sources.mjs from the pinned source files and the shipped packs: CC-CEDICT dace310e1279, HanDeDict 6e49900d4c54, CC-Canto archive 0cc9e600a19c (SHA-256 prefixes). Linked and consulted references without a reuse grant (CUHK, Taiwan Ministry of Education entries) stay as links on Sources. Fonts and code libraries are listed under Credits & rights.