In slotho, “fast” means going without food. In badmintho, a “let” is a rally that gets played again. In pluris, the “vault” is where your passwords are kept, encrypted. Outside those apps, each of those words means something else, and a translator that does not know which app it is working in will reach for the everyday meaning. So every red8.io app keeps a short translation glossary of its own words, and none of an app’s text is translated without it.
A label arrives without its screen
Our apps are translated string by string, and a language model drafts each translation. The model is fluent in every language we ship. What it does not get is the screen: a button label such as “Share match” reaches it as two words, with no badminton court anywhere in sight.
We saw what that costs in August. Told only that badmintho was a health-tracking app, the model read the badminton court as a court of law in 18 languages (Unbekanntes Gericht, German for “unknown court of law”) and a match as a coincidence in 8 (Partager la correspondance, French for sharing a correspondence). No automatic check caught either. Every string was present, every placeholder intact, every sentence grammatical. They were about the wrong thing.
What goes in a translation glossary
Each glossary is a page of plain writing, not a database. It says what the app is, who uses it and in what tone, then lists the words that could belong to more than one world: the meaning we want, and the meanings we do not.
| Word | App | What it means there | Not |
|---|---|---|---|
| fast | slotho | going without food for a while | quick |
| stage | slotho | a phase of a fast, such as ketosis | a theatre stage |
| let | badmintho | a rally that is played again | to allow, to rent |
| court | badmintho | where badminton is played | a court of law |
| vault | pluris | the encrypted store for your passwords | a bank vault |
| block | pluris | stop a number from calling you | a city block |
| card | FlowMail | a message on the board | a playing card, a payment card |
| refresh | formatho | fetch the latest from the server | a refreshment |

Below the word list sit the decisions that only make sense one language at a time. In Lithuanian and Latvian, slotho’s fasting is never the religious fast. iOS is not available in Estonian or Latvian, so an Estonian or Latvian slotho user’s Health app is almost always labelled in English; slotho calls it “Health” there too, rather than inventing a name the user will never see on their phone.
Three rules around it
- No glossary, no translation. The tool that translates our apps stops before it starts if the app has no glossary. That includes the translation step inside a release, which runs unattended, because an unattended run is exactly the one whose mistakes nobody reads before they ship.
- It lives with the code. Each glossary sits in the app’s codebase beside the text it governs, changes in the same commit as the correction that taught us something, and is reviewed like code. All five apps got theirs in the same week of August 2026, and each has grown since.
- One word per meaning, held by a test. A badminton match is made of games, and many languages have a sports word for one game that differs from their everyday word. German says Satz, not Spiel; Portuguese says set, not jogo. badmintho’s glossary names that word for twenty languages, and a test fails if any game string in those languages uses a different one.
What you get from it
slotho, badmintho and pluris are each available in 22 languages on the App Store, from Danish to Thai. Use one of them in German, Japanese or Polish, and the words on the screen were translated knowing whether they belong on a badminton court, in a fasting window or in a password vault. FlowMail and formatho ship in fewer languages today and keep a glossary as well, so each language they add starts from the same page.
If a word reads wrong in your language, tell us. Each app’s FAQ says how to reach us (slotho, badmintho, pluris), and we correct the glossary along with the screen.

