Fill Translations
Overview
| Property | Value |
|---|---|
| Node ID | i18n/fill-translations |
| Kind | action |
| Module | i18n-flowdsl |
| Repo | go-modules |
| Module ref | i18n |
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 carrieskeysandreason
Outputs
Filled— Result counts: keysProcessed, localesFilled, skipped, stale, protected, errorsError— No AI provider wired, no keys given (without all_keys), or the run failed
Emits
Event topics this node may publish:
i18n.updated
Settings
| Property | Type | Required | Default | UI Group | Description |
|---|---|---|---|---|---|
all_keys | boolean | — | false | — | Off by default: an input with no keys is refused rather than read as "translate everything". Turn on for a scheduled sweep. |
limit | integer | — | 200 | — | Stop after this many keys; the next run continues. Zero means no limit. |
locales | array | — | — | — | Limit to these locale codes. Empty means every active language. |
mode | string (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. |
review | boolean | — | 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
# 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