FlowDSL Node Catalog

Fill Translations

Translate keys into every active language they are missing — and, optionally, re-translate machine text made from inputs that have since changed.

Overview

PropertyValue
Node IDi18n/fill-translations
Kindaction
Modulei18n-flowdsl
Repogo-modules
Module refi18n

Description

The unattended half of catalogue translation. Wraps the same loop as the admin "translate missing" endpoint and the i18n-translate CLI, so a key filled by a flow and a key filled by hand agree on what "missing" means.

Reads keys from the input — or payload.keys, which is where an i18n.keys_changed event carries them — and writes each translation with machine provenance attributed to this flow.

Deliberately CANNOT overwrite. There is no overwrite setting: replacing text a person, code or a seed wrote is a decision for a human in the admin, never for a flow. The most it does is missing_and_stale, which re-translates only machine translations whose recorded source text or translator note no longer matches the key — text of unknown origin has no such record and is never touched.

Idempotent: events are delivered at least once, and a redelivery finds nothing missing or stale and writes nothing.

Inputs

  • Keys — keys (array of strings), or an i18n.keys_changed event whose payload carries keys and reason

Outputs

  • Filled — Result counts: keysProcessed, localesFilled, skipped, stale, protected, errors
  • Error — No AI provider wired, no keys given (without all_keys), or the run failed

Emits

Event topics this node may publish:

  • i18n.updated

Settings

PropertyTypeRequiredDefaultUI GroupDescription
all_keysboolean—false—Off by default: an input with no keys is refused rather than read as "translate everything". Turn on for a scheduled sweep.
limitinteger—200—Stop after this many keys; the next run continues. Zero means no limit.
localesarray———Limit to these locale codes. Empty means every active language.
modestring (missing|missing_and_stale)—missing—missing — fill empty languages only. missing_and_stale — also re-translate machine text whose source or translator note changed since it was made.
reviewboolean—true—Run each new translation past an AI reviewer first. Flagged translations of keys WITH a translator note are held in the review queue instead of served; flags on keys without a note are recorded but go live (without a note the reviewer is unreliable on domain terms). On by default — this node runs unattended.

Example

yaml
# Use this node in a flow:
nodes:
  - id: my_step
    name: My Step
    kind: action
    action_ref: i18n/fill-translations
    config:
      all_keys: false
      limit: 200
      locales: []
      mode: missing
      review: true