Skip to content
better-i18n.com

The translation editor is the project's Translations tab: your keys as a table, one column per language, edited in place.

Getting there #

  1. Open the project
  2. Click Translations
  3. 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.

KeyAction
/ Ctrl + EnterSave
EscClose without saving
/ Ctrl + IToggle 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:

OriginMeaning
Manual editSomeone typed it
AIGenerated by the model
Bulk updatePart of a multi-key operation
ImportCame in from a file or a sync
NoteSomeone 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?.