How do I use the translation editor?
The translation editor is the project's Translations tab: your keys as a table, one column per language, edited in place.
Getting there #
- Open the project
- Click Translations
- Filter by namespace to narrow the list
Editing a value #
Click the cell you want to change — the source language or any target language — and the editor opens on it.
| Key | Action |
|---|---|
⌘ / Ctrl + Enter | Save |
Esc | Close without saving |
⌘ / Ctrl + I | Toggle the AI drawer |
⌘S does nothing here: saving is ⌘Enter, because the editor is a popover on a cell rather than a document you are writing.
Saving records the change. It does not publish it — see How do I publish translations?.
Placeholders are highlighted #
Values with variables — {{name}}, {count} — show those parameters highlighted inside the text, so you can see at a glance whether a translation kept them. That is the single most common way a translation breaks: the words are right and {count} is gone.
Values that hold JSON open in a raw text field instead of the rich editor, so a structured value stays valid rather than being reformatted by a text editor that does not know what it is looking at.
Notes #
You can attach a note to a value — why it is phrased that way, a decision someone made, a question for the next person. The note lands in that value's history rather than in a separate document nobody opens.
History #
Every value carries its own history, and each entry says where the change came from:
| Origin | Meaning |
|---|---|
| Manual edit | Someone typed it |
| AI | Generated by the model |
| Bulk update | Part of a multi-key operation |
| Import | Came in from a file or a sync |
| Note | Someone annotated the value |
This is the fastest answer to "why does the German say this?" — the origin is recorded next to the change.
The AI drawer #
⌘I opens the project's AI drawer. It is the AI path that carries your glossary and your project instructions, so a suggestion from here follows your terminology rather than translating in a vacuum. See How do I manage my translation glossary?.
Before you publish #
Pending changes are shown as a tree — what changed, in which language, in which namespace — with a publish action beside it. Read that tree before publishing rather than after: it is the difference between publishing what you meant and publishing whatever happened to be pending.
Bulk work #
Select several keys to update or delete them together, and bulk AI translation covers the "fill in everything missing in German" case. Bulk edits show in each value's history as a bulk update, so a mass change is still traceable per value afterwards.
There is no export from this screen. To get translations out as files, use better-i18n pull — see How do I set up the CLI?.
Better I18N