# Reworder English–Russian quick dictionary

`common-en-ru.json`, `instant-en-ru.js` and `full-en-ru.json` contain adapted
dictionary data licensed under **Creative
Commons Attribution–ShareAlike 4.0 International**:
https://creativecommons.org/licenses/by-sa/4.0/
The license applies to these dictionary data, independently of application code.
The data are provided without warranties; a short dictionary translation cannot
resolve every meaning of a word in context.

Sources and credits:

- **English–Русский FreeDict+WikDict dictionary**, edition **2025.11.23**,
  62,181 headwords, maintained/published by **Karl Bartel**. Created by
  [WikDict](https://www.wikdict.com/) from [Wiktionary contributors](https://www.wiktionary.org/)
  through [DBnary](https://kaiko.getalp.org/about-dbnary/), distributed by
  [FreeDict](https://freedict.org/downloads/). Original dictionary license:
  [CC BY-SA 3.0 Unported](https://creativecommons.org/licenses/by-sa/3.0/).
  Adaptation is distributed under the later BY-SA 4.0 license, as permitted by
  section 4(b) of the original license. Original license text: `COPYING-FreeDict.txt`.
- **FrequencyWords**, by **Hermit Dave** and contributors, English OpenSubtitles
  **2018** frequency list from [OPUS](https://opus.nlpl.eu/), revision
  `525f9b560de45753a5ea01069454e72e9aa541c6`.
  [Source and attribution](https://github.com/hermitdave/FrequencyWords/tree/525f9b560de45753a5ea01069454e72e9aa541c6).
  Its **content** is CC BY-SA 4.0 (the repository's separate MIT license applies
  to its software, not the frequency data).

Reworder modifications (2026-09-11): selected the first **8,000 translated
dictionary entries** in frequency order; excluded affixes and broken markup;
preferred exact lower-case headwords over homonymous proper names; removed stress
marks and wiki link syntax; retained up to five meanings across parts of speech;
added the editorial corrections, irregular forms and contractions in
`overrides-en-ru.json`. These corrections are also CC BY-SA 4.0. Additional
contractions bring the total above 8,000. This is a frequent vocabulary selected
from that particular corpus, not a claim to cover every token in its raw top
8,000: subtitle fragments, names and untranslated inflected forms may be absent.
Regular plural and verb forms are additionally included when attested in the
corpus's first 8,000 tokens, derived from the source part of speech, and
unambiguous. They are labelled with their base word. Existing exact dictionary
entries are never replaced by generated forms.

The frequent dataset contains **9,559 lookup keys**: **8,045 headwords** and
**1,514 forms**. `instant-en-ru.js` packages these exact translations as a frozen
JavaScript object, so a page can look up a common word synchronously without
waiting for a service worker, storage or a fetch. Script packaging does not
change the dictionary data or their license.

`full-en-ru.json` contains the full set of **58,455 lookup keys**: **56,941
headwords and phrases** plus the same **1,514 forms**. It has no frequency cutoff
and includes valid phrases, numeric terms and Unicode headwords from the source.
Spacing and curly apostrophes are normalized. Keys longer than 200 characters,
affixes, broken markup and entries without a usable Russian translation are
excluded. This unique-key count differs from the source's 62,181 TEI entries,
which can contain multiple entries for one word. The full extension JSON is
byte-for-byte identical to the server artifact. Every frequent dictionary entry
has the same translation in both datasets.

Reproduce inside the remote site's browser tools container:

```sh
python3 /tools/build_lexicon.py \
  --output /tmp/common-en-ru.json \
  --instant-output /tmp/instant-en-ru.js \
  --full-client-output /tmp/full-en-ru.json \
  --server-output /tmp/server-full-en-ru.json \
  --overrides /extension/lexicon/overrides-en-ru.json
```

Source URLs and SHA-512/SHA-256 checksums are pinned in that script. All outputs
are deterministic; generation time is not written into the files. No translation
service or LLM is called to build or look up these datasets.
