Dictionaries
A dictionary is a named glossary of words. Each word has a short description, categories and any number of longer descriptions with an optional video. Learner apps read the words through a public API. The dictionaries package provides it.
| Screen | Route | Shown when |
|---|---|---|
| Dictionary list | /other/dictionary |
dictionary_list or dictionary_read |
| Dictionary (tabs Attributes, Words) | /other/dictionary/:dictionaryId/:tab |
dictionary_create |
| Word (tabs Attributes, Categories, Descriptions) | /other/dictionary/:dictionaryId/:tab/:dictionaryWordId/:dictionaryWordTab |
dictionary-word_create |
All screens also need the ulams/dictionaries package, and the menu item can be hidden with
the hideInMenu-OtherDictionary setting. Note that opening a dictionary or a word, even to
read it, needs the create permission.

Creating a dictionary
Section titled “Creating a dictionary”- Click New on the list.
- On Attributes enter the Name; the Slug is used in the public API URL.
- Set Free views count: how many words a visitor without access may open per day. Leave it empty for no limit.
- Save, then open the Words tab to add words.
On the Words tab, New opens the word form:
- Attributes: the Word and a short Description.
- Categories: categories from the category tree.
- Descriptions: a list of longer entries, each with a Title, a Description and a Video URL.
Importing words
Section titled “Importing words”With the dictionary-word_import permission the Words tab shows Import dictionary, which
accepts one .csv or .xlsx file. The first row is a header and is skipped. Each following
row is one word:
| Column | Content |
|---|---|
| A | the word (required, up to 255 characters) |
| B | the short description |
| C | category names separated by commas; each must already exist |
| D, E, F | title, description and video URL of the first long description |
| G, H, I, … | further descriptions, three columns each |
A row whose word already exists in the dictionary updates that word; its categories and descriptions are replaced by those in the file.
Access and free views
Section titled “Access and free views”The public endpoints are GET /api/dictionaries/{slug}/words (list),
GET /api/dictionaries/{slug}/words/categories and GET /api/dictionaries/{slug}/words/{id}
(one word).
Opening one word counts as a view. A signed-in user who has been given access to the dictionary (optionally until an end date) has no limit. Everyone else gets Free views count word views per 24 hours, counted per user or, for anonymous visitors, per IP address; after that the API answers 429 Too Many Requests.