Keys and values
This guide applies to the branch selected in Current branch. Keys, values, languages, tags and file mappings are independent between branches. See branch navigation and branch permissions.
Use Translations to manage a single key with an independent value for each language configured in the branch. You need a current workspace membership. Owner, Admin and Editor can create or rename keys and edit active-language values. Viewer can read values and history. Workspace, project, branch and key must be active for editing; only Owner/Admin can archive or restore a key.
Create a key
Section titled “Create a key”- Open your workspace, then a project. Project cards open Translations. You can also select Translations in the sidebar’s Project group. Projects in the Workspace group returns to the project list; Languages and project Settings stay in the Project group.
- Select Create key. An inline form opens above the table; enter a Key name.
- Keep Plain text, or choose ICU and declare shared parameters.
- Select Create key. The new row has a Missing cell for every language.
Names contain 1–200 letters, digits, underscores, hyphens or periods. Names are case-sensitive:
checkout_success and Checkout_success are distinct. Names must be unique within the branch,
including archived keys. There are no separate namespaces or automatic name conversions.
Edit independent values
Section titled “Edit independent values”- Click or focus the language cell beside a key and type directly into its text field. No dialog opens.
- Select Save beneath the field, or press Ctrl+Enter / ⌘+Enter. Plain Enter inserts a line break.
- The editing controls close only after the server accepts the value. Clicking outside does not save.
- Use Cancel or Escape to stop editing; changed drafts require confirmation.
One cell is edited at a time. Moving to another cell, applying filters, changing columns or paging asks before discarding an unsaved value. Sidebar navigation, workspace/project/branch switching and leaving the page also protect unsaved work. Background refreshes keep the edited page and draft in place.
For example, one key checkout_success can have Ödeme başarılı in tr and
Payment successful in en. Neither value defines the other. The project’s fixed source
language does not make its value mandatory, and changing a value does not mark another as
needing review. No automatic translation or cross-language copying happens.
An empty, cleared or whitespace-only value is Missing. Other leading/trailing whitespace is preserved exactly. A filled fallback language never makes a Missing cell Translated. Adding a branch language shows Missing cells without creating empty database rows for every key.
Each value accepts at most 16 KiB of UTF-8 text. This is a byte limit: some characters use multiple bytes. Plain text is stored without interpreting ICU expressions or HTML. The panel displays text safely rather than executing markup.
Choose columns, search and filter
Section titled “Choose columns, search and filter”- The first five active languages are initially visible. Open Displayed languages, select one to five columns, then Apply. Cancel preserves the current view. Uncheck a column before adding a sixth. Load more languages exposes additional configured languages.
- Search keys and selected values searches key names and visible-language text. Select Search or press Enter to apply it; percent signs and underscores are literal characters.
- Open Filters to choose Key status, Filter language, Value status and included or excluded tags. Apply all selections together. Excluded tags take priority. Active filters are summarized beside Clear filters. Closing the surface does not apply its draft.
- Previous and Next page the current filtered results. A filter language may differ from the displayed languages; fallback is not counted as direct content.
Focus on one key
Section titled “Focus on one key”Use the view icons at the left of the toolbar: the grid selects Table and the split-panel icon selects Focus editor. Hover or focus an icon to read its tooltip; the selected icon stays highlighted. Focus editor provides a key list, source/target values and key detail tabs. The initial source is the project source language; choose a target explicitly. Changing these selectors does not change project languages or fallback. Both values are editable with the corresponding language permission, one at a time. Save and review remain separate.
Key details, Context, Suggestions, History and Comments use existing key operations. The detail tabs stay on one horizontal row and scroll in narrow spaces. Use Left/Right or Home/End to focus a tab, then Enter/Space to open it; focusing a tab alone does not discard a draft. Suggestions fill a draft only; saved text changes require Save. On narrow screens, use Keys, Editor and Details to navigate the same workspace.
The browser remembers the mode and locale selections for this account, workspace, project and branch. Searches and drafts are never stored. Blocked browser storage leaves the editor usable; invalid or removed language preferences fall back to currently available choices.
Discuss a translation
Section titled “Discuss a translation”Hover or focus a cell to reveal View translation comments beside History; touch devices keep the icon available. Click to open its popup, or a dialog on narrow screens.
- This language shows threads for that cell’s locale; General shows key-wide threads.
- Start thread posts a new comment in the selected scope. Open a thread to reply, mention current members, resolve/reopen it, or view a comment’s revision history.
- Viewers can comment. Authors and Owner/Admin can edit/remove comments; Editors may also resolve/reopen threads without gaining permission to edit another person’s comment.
- Comments do not save translations or approve them. Missing translations can have comments. Archived content remains readable under current membership, with existing write restrictions.
- Opening comments preserves an open translation draft. Closing or changing a dirty comment requires confirmation. Escape closes the top surface first and restores its trigger focus.
- Refresh reads current threads. Retry retries failed reads; a failure is not an empty discussion. Lists are paginated and no automatic polling runs.
The key column stays fixed while you scroll the table horizontally. Inactive languages remain viewable, and their text fields are read-only. Reactivate the language in Languages before editing. Rows grow to fit multiline values. Neighboring translations stay top-aligned, with their cell backgrounds covering the entire row height in both themes.
Translation status
Section titled “Translation status”Table actions stay compact: tags, suggestions and reviews use icons with explanations on hover or keyboard focus. A dashed circle beside a saved value means Unreviewed; a checked circle means Reviewed. With review permission, activate it to review or revoke through an explicit inline confirmation. Other members can focus the icon to read its state. These indicators do not add a status row or replace the translation coverage dots. See reviews and permissions.
The dot at the right of each key shows its saved translation coverage:
- Green: every configured language has a translation.
- Yellow: some languages have translations and others are Missing.
- Red: no language has a translation.
Hover over or focus the dot to read the translated and total language counts. The counts include all languages in the selected branch, including inactive languages and columns currently hidden from the table. Fallback values do not count as direct translations. Unsaved drafts do not change the status; saving or clearing a value refreshes it. A newly added language counts as Missing.
Each language heading also has a dot. It counts all active keys in the selected branch, regardless of search, tags, value filters, key status or the current page:
- Green: every active key has a saved direct translation in this language.
- Yellow: some active keys are translated and others are Missing.
- Red: active keys exist, but none is translated in this language.
- Gray: the branch has no active keys.
The outer ring shows review coverage independently of the inner translation dot:
- Dashed red: no saved translations have a current review, including when all values are Missing.
- Dashed yellow: some saved translations await review.
- Solid green: every saved, nonempty translation has a current review.
- Dashed gray: the branch has no active keys.
Review uses saved translations, not all active keys, as its denominator. If 6 of 10 keys are translated and all 6 are reviewed, the inner dot is yellow and the outer ring is green. Only unrevoked approval of the current text and ICU contract counts. Revoking approval or changing that text/contract updates the ring; drafts do not. The ring is informational.
Hover over or focus the indicator to read both counts, for example 6 of 10 active keys translated and 6 of 6 translations reviewed. Escape dismisses the tooltip. Displayed inactive languages use the same rules. Archived keys are excluded, including when viewing the Archived or All key list. Fallback and unsaved drafts do not count. Saving or clearing a value, creating a key, archiving or restoring a key refreshes the counts. While editing, the table keeps its saved snapshot until the editor closes. Language headings remain visible when no rows match the filters; an empty result does not reset branch coverage.
Rename, archive and restore
Section titled “Rename, archive and restore”Select a key name to open Key details above the table. No modal is required. Change Key name, then Save key. The key’s ID, values and history are retained. To archive, Owner/Admin choose Archive key and confirm its effect in the inline confirmation. Find it again using Archived, open its details and choose Restore key.
Archiving preserves all content and reserves the name. It does not delete a key or a language. Parent workspace/project/branch archives also make translations read-only. Restore those parents first; restoring a parent does not restore a separately archived key or reactivate a language.
Recover from a failed save
Section titled “Recover from a failed save”A failed save keeps the draft and reports the server error. Duplicate names require a different name or the existing key; inactive languages require reactivation. If your role changed, ask an Owner/Admin for access. For a stale version, follow conflicts and history. Publishing, runtime fallback lookup and SDK delivery are not part of this editor.
Tags and file transfers
Section titled “Tags and file transfers”Use key tags for inline or bulk organization and include/exclude filtering. Import adds reviewed content atomically; Export downloads a consistent snapshot without modifying Missing state.
Translation assistance
Section titled “Translation assistance”For a Missing cell with a saved source in an active language, use the Suggest translation sparkle icon. Select a connection and source, approve Generate, review or edit the suggestion in the same cell, then choose Apply. The suggestion is not a saved value before Apply. Completely empty keys and keys with only inactive source values have no Suggest icon. For selected keys or a filter use Translate missing. The review workflow preserves filled targets and uses a selected active source language without fallback. Suggestions require explicit review and Apply.
Git file groups
Section titled “Git file groups”When Git mappings exist on the selected branch, the key editor can assign a new key to an enabled mapping and file group. This assignment does not send content to the provider. Existing unassigned keys must be assigned before an export preview. Review Git synchronization for import approval, conflicts and explicit external rename matching.
Context and human review
Section titled “Context and human review”Key context, language grants and review indicators extend the editor. Descriptions preserve text approval; changing a value or its ICU contract invalidates the affected review. Glossary and memory suggestions fill a draft only.
Selected Figma text
Section titled “Selected Figma text”The Figma development workspace maps selected design text to these same branch-scoped keys. Its preview and atomic save preserve language permissions and revision history; saving, review, AI Apply and publication remain separate operations.
A compact View translation history icon on each cell opens its saved language changes and review events without discarding an open draft. Desktop hover/focus reveals the control; touch screens keep it available. See history and differences.
Choose whether we remember appearance preferences and use Google Analytics on Localisync and its documentation. Optional storage stays off until you accept.
Read our cookie policy