The editor
Words & translation
A level says things — its name, its description, the line a script puts on the HUD. The Words panel is where it says them in other languages, and the block it writes travels inside the document like everything else: copy the file and you have copied the translations.
The sentence is the key
There is no step where somebody invents gate.locked.message. The level's own sentence is the lookup key, and the translation table maps it per language:
"words": {
"de": {
"Shooter": "Schießstand",
"the gate is locked": "das Tor ist verschlossen"
}
}The fallback is the key itself, which means there is no broken state: a language with a missing row simply gets the level's own words, and an empty translation is no translation. A document only ever carries what somebody actually said.
An international title and description
The name and the description are the first two phrases the panel offers — they are sentences the level says like any other. Add a language, fill in their two rows, and the level introduces itself in the reader's language wherever it is shown. Nothing else to configure: the untranslated title keeps working everywhere the translation is missing.
The English (or whatever language you wrote the level in) stays the original — it is edited where it is written, in the title bar and the Document panel, never in the Words table. That keeps one source of truth for what the level says, and the table only ever answers "how do I say that in…".
What a script says
Scripts get t(), which looks the sentence up in the player's language and falls back to what you wrote:
function onTrigger(event, other) {
if (event !== 'enter') return
if (!world.get('unlocked')) log(t('the gate is locked'))
}The panel finds every t('…') a plain reading of the scripts can see and offers each as a row. What it cannot see is a key a script builds at runtime — t('door ' + n) — so those rows are typed into the table by hand, and the panel never deletes a row it did not recognise: the phrase an author worked hardest to add is exactly the one a tidy-up would throw away.
The Words panel
A language chip row on top — add one, pick one, remove one — and under it a table: every phrase down the left, that language's answer beside it. Adding a language writes nothing until you type: a language with no rows is not a thing to store, it is a column to be typing into. Removing a row is blanking its box, and the block itself disappears from the document when its last row goes.