Translations
The Translations page is the editor. It is a table of keys (rows) × languages (columns) where your team spends most of its time. This page explains what the editor can do and how to work efficiently in it.
Layout
Section titled “Layout”- Rows are translation keys within the selected namespace.
- Columns are languages in the project. The source language is always visible so translators see what they’re translating from.
- Cells contain translation values, each with a status badge (
Not translated/Not reviewed/Translated). - Side panel (when a cell is active) shows the key’s description, history, comments, ICU validation, translation memory matches, machine translation suggestions, and glossary hits.
Creating keys
Section titled “Creating keys”-
Add Key
Click Add Key at the top of the Translations page.
-
Name it
Use stable, descriptive names.
checkout.payment.card_numbertells a translator where the string lives;label_42doesn’t. Keys are unique within a namespace —nav.homecan exist independently incommonand inemails. -
Pick the namespace
Default to
defaultif you haven’t split yet. See Namespaces for when to split. -
Write the source value
Use ICU MessageFormat for placeholders, plurals, and selects. Comvi validates ICU syntax on save.
-
Add a description (strongly recommended)
Explain where the string appears, what tone it should have, what it refers to. Good descriptions save more translator time than any other single thing.
The key is created with the source value filled and empty slots for every target language.
Editing values
Section titled “Editing values”Click any cell to edit inline. Press the save shortcut (see Keyboard below) or move focus away to save. Comvi validates ICU as you type — missing placeholders in the target relative to the source are flagged before you save.
Editing an already-Translated value drops it back to Not reviewed — every edit after approval goes through review again. See Translation Lifecycle for the full state machine.
Placeholders and plurals
Section titled “Placeholders and plurals”Comvi stores values in ICU MessageFormat. Typical shapes:
Hello, {name}!You have {count, plural, one {# message} other {# messages}}.{gender, select, male {He} female {She} other {They}} updated the profile.Source and target placeholders must match. If the source uses {name} and your translation omits it, you’ll see a warning on save.
Status and review
Section titled “Status and review”| Status | When it’s set |
|---|---|
| Not translated | Empty cell |
| Not reviewed | Value exists, not approved. MT, translator edits, and imports (by non-reviewers) land here. |
| Translated | Approved. Include only this status in production CDN settings to keep drafts out. |
Click a status badge to change it manually — subject to role. Translators cannot set Translated; editors and above can. See Roles & Permissions.
Filtering and searching
Section titled “Filtering and searching”The Translations page combines several filters:
- Search — by key name or value substring
- Namespace — restrict to one namespace at a time
- Status per language — “show only French keys that are Not reviewed”
- Language subset — hide columns you don’t need
- Sort — by key name, creation date, or last-updated date
Filters compose. “Search error, in auth namespace, Not translated for French” is one click away and is how translators focus their work.
Bulk operations
Section titled “Bulk operations”Select keys via the row checkboxes; a bulk-action bar appears:
| Action | Effect |
|---|---|
| Bulk translate | Send selected keys through machine translation for chosen languages |
| Change status | Set Not reviewed or Translated for selected cells |
| Move namespace | Move keys to another namespace (names must stay unique there) |
| Copy values | Duplicate values from one language to another for selected keys |
| Clear values | Wipe values back to Not translated |
| Export | Export only the selected keys |
| Delete | Permanently remove keys and all their values |
Side panel
Section titled “Side panel”When a cell is focused, the side panel shows context for that exact (key, language) pair:
- Description — the key’s definition
- ICU validation — red flags on placeholder mismatches
- History — every change with who/when/what
- Comments — threaded discussion on this value
- TM matches — similar source text translated before (see Translation Memory)
- MT suggestions — on-demand machine translations
- Glossary hits — highlighted terms with preferred translations
Use it when you’re uncertain about a value — it answers “why was this last edited?”, “what did the previous translator do?”, “is this consistent with the TM?”.
Keyboard
Section titled “Keyboard”| Shortcut | Action |
|---|---|
Tab / Shift+Tab | Move to next / previous cell |
Enter | Save and move down |
Escape | Cancel edit, discard pending changes |
These keep power users in a rhythm — for long translation sessions, the keyboard flow matters.
History and comments
Section titled “History and comments”Both are covered per-value in the side panel. History is immutable — a full audit trail.
Limits
Section titled “Limits”- Keys must be unique within a namespace. Same name across namespaces is allowed.
- ICU validation is enforced on save — broken placeholders block save.
- Bulk delete is permanent; there is no trash or restore.
Troubleshooting
Section titled “Troubleshooting”A translation saved but the status didn’t change
Section titled “A translation saved but the status didn’t change”The caller doesn’t have review permission. Translators’ edits always land as Not reviewed; an editor or manager has to approve.
ICU validation keeps failing on a translation
Section titled “ICU validation keeps failing on a translation”The target must use the same placeholder names as the source. Check for {name} vs {Name}, or a missing plural branch. See Pluralization & ICU for syntax.
I don’t see any TM matches
Section titled “I don’t see any TM matches”Check the TM is assigned to the project and has content in the right language pair. Short source strings rarely match. See Translation Memory.
Bulk translate finished but nothing changed
Section titled “Bulk translate finished but nothing changed”Check job results — some language pairs may be unsupported by the provider and skipped. Switch providers or pick different languages.
I edited a Translated value and it dropped back to Not reviewed
Section titled “I edited a Translated value and it dropped back to Not reviewed”Deliberate — every edit after approval re-enters review. See Translation Lifecycle.