Jadpo is experimental and not ready for production. These docs follow the compiler's main branch as of 5 Nov 2026. What's built · Install 0.3.0
jadpo
ReferenceErrors

ErrorsConfiguration · rule

translation.wording_missing

On this page

A language file of a supported locale leaves out one of the messages, or failures, that its folder has to word.

Area 10, Configuration; not declinable; the next step is usually the agent's.

Why Jadpo refuses it

Every supported locale words every message of each folder, and every failure a route can answer with. A call in French of a message the French file leaves out would have no words to show. Jadpo won't quietly show English instead, because a supported locale is meant to be complete.

A locale that isn't finished yet says so in in_progress:, and only such a locale falls back to the default where its wording is missing.

What it looks like

The app supports English and French, and the shipping domain has two messages, order_shipped and parcels. The French file words only the first.

domains/shipping/translations/fr_fr.jadpo:

example
translations {    order_shipped: "La commande de {name} a été expédiée."}
jadpo checkcheck failed: 1 error, 5 files

error parcels has no wording in domains/shipping/translations/fr_fr.jadpo

--> domains/shipping/translations/fr_fr.jadpo:1:1

  |1 | translations {  | ^^^^^^^^^^^^ no `parcels`
reason
A message is worded in every supported locale that isn't in progress, so a call with locale: Locale.fr_fr has words to show.
next
Add parcels, with a wording for each plural form (one, many and other) to domains/shipping/translations/fr_fr.jadpo, which may write {count} (agent)
rule
translation.wording_missing
help
https://jadpo.dev/docs/errors/translation.wording_missing

(agent) at the end of the next: line means your coding agent can make the fix itself.

A failure a route can answer with is worded the same way, keyed by its code, so a client app showing French has text for it. Here the booking domain's French file words nothing, and POST /openings can answer with slot_taken.

domains/booking/translations/fr_fr.jadpo:

example
translations {}
jadpo checkcheck failed: 1 error, 11 files

error slot_taken has no wording in domains/booking/translations/fr_fr.jadpo

--> domains/booking/translations/fr_fr.jadpo:1:1

  |1 | translations {}  | ^^^^^^^^^^^^ no `slot_taken`
reason
A failure a route can answer with is worded in every supported locale that isn't in progress, so a client app showing Locale.fr_fr has text for its code.
next
Add slot_taken: "..." to domains/booking/translations/fr_fr.jadpo (agent)
rule
translation.wording_missing
help
https://jadpo.dev/docs/errors/translation.wording_missing

How to fix it

If the wording is ready, add the missing member to the language file, with a wording for each plural form French has. In domains/shipping/translations/fr_fr.jadpo:

example
    parcels: {        one: "{count} colis"        many: "{count} colis"        other: "{count} colis"    }

A French call of parcels now writes the French wording for its count.

If a failure has no wording, add it under its code. In domains/booking/translations/fr_fr.jadpo:

example
    slot_taken: "Ce créneau vient d'être pris."

A client app showing French now has French text for the slot_taken failure.

If French is still being translated, list it in in_progress: in app.jadpo:

example
    in_progress: [Locale.fr_fr]

A French call of parcels falls back to the English wording until the French file words it. Removing French from in_progress: makes the gap an error again.

Markdown for agents: /docs/errors/translation.wording_missing.md.Built from Jadpo main at aee2e8f.