Translation Items¶
Clicking Translations items from a language's actions menu opens the Translation Items view for that language.
This view lists all translation keys registered in the system alongside their translated value for the selected language.
Filters¶
- Item Key: Filters by key name (partial match).
- Translation: Filters by the translated text (partial match). Disabled when Untranslated only is active.
- Untranslated only: When checked, shows only keys that have no translation for the current language.
Translation Grid¶
| Column | Description |
|---|---|
| Item Key | The unique i18n key used in the application code. |
| Description | An optional human-readable description of the key's purpose. Editable only on the default language. |
| Default translation | The translation value from the default language. Shown only when the current language is not the default, as a reference for translators. |
| Translation | The translated string for the current language. Displayed in italic if no translation has been set. |
| Actions | Per-row options. See Translation Actions. |
When the current language is the default language, multi-row selection is enabled (click or drag to select). Rows can also be selected by clicking the checkbox on the left of each row.
Editing a Translation Inline¶
Double-clicking any row opens an inline editor directly in the grid. The Translation field (and Description field, for the default language) becomes editable in place. Press Enter to save or Escape to cancel. The row is only saved if the value has actually changed.
The ← Back button at the top right returns to the Language List.
Translation Actions¶
Each row has a ⋮ button with two options:
- Edit translation: Opens the inline editor for that row and focuses the translation field.
- Delete translation: Deletes the key and its translations across all languages. A confirmation dialog is shown before proceeding.
Warning
Deleting a translation key removes it from every language in the system, not just the current one. This action cannot be undone.
The same options are also accessible via a right-click context menu on any row.
Keys Options¶
A More button in the toolbar opens a popover with options for managing translation keys:
- New item: Opens the Add key dialog to manually register a new translation key.
- Scan missing keys: Opens the Scan missing keys dialog to discover and import keys that exist in the application's bundled
.propertiesfiles but are not yet registered in the database. - Delete selected: Deletes all currently selected rows (and their translations in all languages) after confirmation. The button is only active when at least one row is selected.
Note
New item and Scan missing keys are available while viewing any language. Delete selected — and the multi-row selection it relies on — is available only while viewing the default language, to avoid accidental cross-language deletions.
Adding a New Key¶
| Field | Description |
|---|---|
| Item Key | Required. The unique identifier for this translation key, typically in reverse-domain notation (e.g. appjars.mymodule.myview.label). |
| Description | Optional. A human-readable explanation of where and how this key is used. |
| Translation | Required. The translation value for the language currently being viewed. |
Click Save to create the key. It will immediately become available for translation in all other languages.
Scan Missing Keys¶
The scan dialog compares the keys registered in the database against those found in the application's bundled .properties files for the selected language. Keys present in the files but absent from the database are listed as candidates for import. The scan can be started from the More popover in the Translation Items view for any language, or from a language's actions menu in the Language List.
Each candidate row shows its key and the value found in the properties file. Rows can be selected individually; the translation value can be edited inline by double-clicking before saving. Click Save to persist the selected keys and their translations. Only selected rows are imported.
Scanning the Parent Language File¶
When a language has a region (for example, Spanish (Argentina), es_AR), the scan looks for a locale-specific file such as messages_es_AR.properties. If that file does not exist but a file for the parent language (messages_es.properties) does, a Parent language file found dialog appears and offers to scan the parent language file instead. Confirm to load the missing keys from the parent file, or cancel to skip the scan.
Skipped Keys¶
After saving, some selected keys may not be stored if the database treats them as duplicates of an existing key — for example, when the database uses a case-insensitive collation and a key differing only in letter case already exists. When this happens, a Skipped keys dialog lists the affected keys and provides a Copy to clipboard button. All other selected keys are still imported.



