What applies of Japanese's features to Chinese, Korean, Greek, German and English, with the developer's choices and each decision's reason: Unihan's characters, KRDict's words and levels, Make Me a Hanzi's and the curator's own strokes, typed pinyin, radicals and readings by language; what doesn't apply or has no open data. AGENTS.md, the server's README and the instance's example environment follow. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
52 lines
2.4 KiB
Markdown
52 lines
2.4 KiB
Markdown
# halkyon_learn_server
|
|
|
|
This is the starting point for your Serverpod server.
|
|
|
|
Start your server by running:
|
|
|
|
cd halkyon_learn
|
|
serverpod start
|
|
|
|
When you are finished, you can shut down the running server with `Q`.
|
|
|
|
## Dictionaries
|
|
|
|
The dictionaries people look words up in (JMdict, …) are reference data the
|
|
server holds for everyone. They come as dictionary files, which
|
|
`halkyon_learn_curator` makes from the sources' downloads (its README says how).
|
|
At every start, and every hour at seven past, the server loads the files in
|
|
its `dictionaries` folder that changed since they were last loaded (by their
|
|
SHA-256): in the background, a source at a time, and all at once, so searches
|
|
meanwhile still find the old entries. A file it can't read is logged and left
|
|
out. A dictionary whose file is gone is unloaded, once every file in the folder
|
|
could be read (the curator removes the files of languages an instance no longer
|
|
keeps). `DICTIONARIES_DIR` names another folder.
|
|
|
|
EDRDG's licence asks a server showing its dictionaries to update them at least
|
|
once a month:
|
|
|
|
- **An instance** keeps them current by itself: the `dictionaries` service in
|
|
`deploy/compose.yaml` (the curator, in a container of its own) downloads
|
|
EDRDG's files of the day once its files are a week old, converts them, and
|
|
replaces them in a volume the server reads (`curate update`, the curator's
|
|
README); the server takes them up within the hour. To supply files yourself
|
|
instead, remove the service and mount `deploy/dictionaries/` into the server
|
|
(`compose.yaml` says how), and update them monthly.
|
|
- **Development:** `dart run halkyon_learn_curator:curate update --into
|
|
../halkyon_learn_server/dictionaries` in the curator's folder (about a
|
|
minute); the server takes them up within the hour.
|
|
|
|
JMdict in English, with the JLPT levels and Tatoeba's example sentences, is
|
|
about 20 MB gzipped and takes the server half a minute to load (219,000
|
|
entries). KANJIDIC2 in English, with the JLPT levels of the kanji and the kana,
|
|
is a dictionary of characters beside it (`kanjidic-en.jsonl.gz`, 0.7 MB,
|
|
12,800 entries): the app's Kanji & kana tab. Their licences (CC BY-SA 4.0;
|
|
CC BY 2.0 FR for the sentences; CC BY for the JLPT lists) ask for attribution:
|
|
the app lists the credits each file carries.
|
|
|
|
## Licence
|
|
|
|
Copyright (C) 2026 The Halkyon Learn contributors
|
|
|
|
Licensed under the Server Side Public License, version 1 (`SSPL-1.0`); the full text
|
|
is in `LICENSE`.
|