StringLane

Browse docsHow to Use the List View Editor
How-To

How to Use the List View Editor

Navigate the key sidebar and detail pane: switch between Grid and List layouts, track validation at a glance, and edit every locale for one key in one place.

Last updated

StringLane's single editor surface is a sidebar of keys on the left and a per-key detail pane on the right. Select a key → every locale's value appears in the detail pane. This replaces the old split Table/List view with one focused layout.

Per-key detail pane in Grid mode with every locale shown as a card

Layout#

  • Sidebar (280px, left): namespace-grouped key tree, search, filter popover, command-palette launcher at the bottom. Stays visible while you work.
  • Detail pane (main area): header (key name + chips + Grid/List toggle) and a locale layout showing every locale side-by-side.
  • Issues panel (right rail or bottom drawer): collapsible; auto-opens when the project has validation issues.
  • Status bar (bottom): completion ring, error/warning chips, "Saved · Ns ago" indicator.
The status bar: a 92% completion ring, 6 locales, 28 keys, a red 16 errors chip and an amber 31 warnings chip on the left, with Reload and Saved on the right

Switching between Grid and List layouts#

The detail header has a Grid / List segmented toggle. Your choice persists per-project.

  • Grid: locale cards in a 3-column grid. Best for short strings and projects with 3-6 locales.
  • List: locale rows stacked with a wider value field. Best for longer strings, or when you want char-width bars inline per locale.
Per-key detail pane in List mode with stacked locale rows and inline char-width bars

Default is Grid for ≤6 locales, List otherwise. Flip it any time.

Keys are grouped by their first namespace segment (before . or _). So settings.theme, settings.density, and settings.fontSize all live under a collapsible settings group.

  • ⌘F (or click the search input): focus the sidebar search. Type to filter across all namespaces.
  • ↑ / ↓: move between visible keys.
  • ⌘→ / ⌘←: next / previous key in the filtered list.
  • Nested / Flat toggle: segmented control under the search input switches between namespace-grouped and flat alphabetical views.
  • Click the filter icon (next to search) to open the filter popover: pick locale, toggle Issues-only, clear all.
Sidebar with an active keyword filter showing Showing N of M keys

When a filter is active, the sidebar shows chips of each filter and a "Showing N of M keys" count.

Editing a cell#

Click a locale's value in the detail pane → an inline input appears. The same keyboard shortcuts apply as always:

KeyAction
EnterSave and move to the next locale
TabSave and move to the next locale
Shift+TabSave and move to the previous locale
EscapeCancel: restores the original value
⌘ZUndo changes in the current cell

Edits auto-save to the source file: no export step.

The French cell open for inline editing with the value Bon retour, {name} !, every other locale still visible around it, and the status bar reading Saving…

Reading the validation rail#

Every locale row has a thin 2px colored rail on its left edge:

  • Mint: source / base locale.
  • Green: translated, clean.
  • Amber, warning (placeholder drift, approaching length budget).
  • Red: error (missing required placeholder, over length budget, ICU parse error).

Hover the rail for a tooltip with the first issue message. When you enter edit mode on a problematic cell, a loud inline badge also appears for explicit feedback. See the validation badges guide for what each code means.

Char-width preview#

Each list-mode row has a mini bar showing current ch count vs. the budget. Over-budget bars turn red. Budget comes from the key's x-max-length metadata if set; otherwise a heuristic based on the base value's length. In Grid mode the bars live in a summary panel at the bottom of the detail pane so you can compare locales side by side.

Plural keys#

If the key is a plural (has an @@plural marker or is already a plural map), the detail pane expands into one panel per locale with per-quantity rows (zero, one, few, many, other). Each quantity gets its own rail, char-width bar, and {} ICU editor button.

Plural key in the detail pane: per-locale panels with quantity rows

When a locale is missing a plural category that its CLDR rules require (e.g. few and many for Polish), the Add form: chips at the bottom highlight those categories in blue. Optional categories stay muted.

AI translate buttons#

Each non-base locale cell has a button next to its value. Click it to translate that one cell via your configured AI provider. A spinner replaces the button while it runs; the result auto-saves. Or focus the cell and press ⌘⇧T to translate, or re-translate, just that one field.

For batch translation across many cells, open the command palette (⌘P) and pick Translate all missing with AI: see Translate all missing.

Keyboard shortcuts summary#

ShortcutAction
⌘POpen the command palette
⌘FFocus the sidebar search
⌘JToggle the Issues panel
⌘⇧IToggle Issues-only filter
⌘TTranslate the active key into every non-base locale
⌘⇧TTranslate only the focused locale field: re-translates that one cell, not every locale
?Show the keyboard shortcuts cheatsheet
⌘,Open Settings
↑ / ↓ / ⌘→ / ⌘←Navigate between keys
Tab / Shift+Tab / Enter / EscapeEdit mode navigation

Every shortcut in this list can be rebound from Settings → Keybindings: see Customize keybindings.