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.jadpo_missing

On this page

The app supports a locale that Jadpo doesn't ship its own messages in, and the app hasn't worded them itself.

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

Why Jadpo refuses it

Jadpo writes some text itself, such as the answer to a request it can't read or a route that doesn't exist. It ships that wording in en_gb and en_us only. In any other supported locale, the people and client apps using your app would be shown English.

So the app words Jadpo's messages itself, in the root translations/<locale>.jadpo, under jadpo: { }. Only the messages of features the app uses count, such as the request messages once an API serves a route.

What it looks like

The app supports English and French, and serves one route, so Jadpo's messages for answering requests are on. The app has no root translations/fr_fr.jadpo.

domains/notes/routes/notes.jadpo:

example
use notes/types { NoteRequest, NoteShown }use notes/actions { echo_note }routes Notes {    prefix: /notes    POST / {        authentication: RouteAuthentication.none        input: NoteRequest        output: NoteShown        run: echo_note(input)    }}
jadpo checkcheck failed: 1 error, 7 files

error Locale.fr_fr is supported but Jadpo's own messages aren't worded in it

--> app.jadpo:5:31

  |5 |     supported: [Locale.en_gb, Locale.fr_fr]  |                               ^^^^^^^^^^^^ no `translations/fr_fr.jadpo`
reason
Jadpo ships its own wording in en_gb and en_us and no other locale, so users and client apps working in Locale.fr_fr would be shown English. An application words the messages of the features it has on itself, in the jadpo: { } group of the root translations/fr_fr.jadpo. Still to word: invalid_request, invalid_input, route_not_found, method_not_allowed, request_too_large, idempotency_key_reused, rate_limited, unavailable, internal_fault and deadline_exceeded.
next
Run jadpo translations builtin to list them with their fields, then word each under jadpo: { } in translations/fr_fr.jadpo (agent)
rule
translation.jadpo_missing
help
https://jadpo.dev/docs/errors/translation.jadpo_missing

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

How to fix it

If French is ready, list the messages to word, with their English wording to translate from:

shell
jadpo translations builtin
output
Requests  invalid_request         needs fr_fr    The request couldn't be read. Try again.  invalid_input           needs fr_fr    Some of the information sent isn't valid. Check it and try again.  route_not_found         needs fr_fr    We couldn't find what you were looking for.  method_not_allowed      needs fr_fr    That isn't something this address can do.  request_too_large       needs fr_fr    What was sent is too big. Send less and try again.  idempotency_key_reused  needs fr_fr    That request was already sent with different details. Start again.  rate_limited            needs fr_fr    Too many requests. Wait a moment, then try again.  unavailable             needs fr_fr    A service this depends on isn't available right now. Try again soon.  internal_fault          needs fr_fr    Something went wrong on our side. Try again soon.  deadline_exceeded       needs fr_fr    That took too long, and nothing was saved. Try again.Locales  text_direction    left_to_right  ltr    right_to_left  rtl11 messages: 10 need wording, 2 featuresnext: jadpo check  fails until the application words them

Then word each one under jadpo: { } in the root file, translations/fr_fr.jadpo. The list shows text_direction too, but Jadpo ships its wording in every locale, so it needs none:

example
translations {    jadpo: {        deadline_exceeded: "Cela a pris trop de temps, et rien n'a été enregistré. Réessayez."        idempotency_key_reused: "Cette requête a déjà été envoyée avec d'autres détails. Recommencez."        internal_fault: "Un problème est survenu de notre côté. Réessayez bientôt."        invalid_input: "Certaines informations envoyées ne sont pas valides. Vérifiez-les et réessayez."        invalid_request: "La requête n'a pas pu être lue. Réessayez."        method_not_allowed: "Cette adresse ne permet pas cette action."        rate_limited: "Trop de requêtes. Patientez un instant, puis réessayez."        request_too_large: "Ce qui a été envoyé est trop volumineux. Envoyez moins et réessayez."        route_not_found: "Nous n'avons pas trouvé ce que vous cherchiez."        unavailable: "Un service dont dépend l'application est indisponible pour le moment. Réessayez bientôt."    }}

A client app showing French now has French text for each of Jadpo's failures, such as route_not_found, in the file jadpo check writes for client apps.

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

example
    in_progress: [Locale.fr_fr]

French falls back to the English that Jadpo ships until the root file words its messages. Removing French from in_progress: makes the gap an error again.

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