Translation status
Which languages this documentation is actually available in, counted from the files rather than claimed. Most of it is English only.
This site has eleven locales. The language menu offers two of them, because two have translated prose; the other nine have a translated interface and English pages. Here is exactly where each one is.
{/ BEGIN generated coverage — tools/sync-translations.mjs /}
| Language | Pages translated | Coverage | What to expect |
|---|---|---|---|
| English | 32 / 32 | 100% | Complete — this is the source |
| 简体中文 | 7 / 32 | 22% | In progress |
| 繁體中文 | 1 / 32 | 3% | Interface only |
| 日本語 | 1 / 32 | 3% | Interface only |
| 한국어 | 1 / 32 | 3% | Interface only |
| Español | 1 / 32 | 3% | Interface only |
| Português | 1 / 32 | 3% | Interface only |
| Deutsch | 1 / 32 | 3% | Interface only |
| Français | 1 / 32 | 3% | Interface only |
| العربية | 1 / 32 | 3% | Interface only |
| हिन्दी | 1 / 32 | 3% | Interface only |
{/ END generated coverage /}
The interface is translated in all eleven. Navigation and its section headings, buttons, status labels, callout headings, the safety warnings and the error-page furniture, plus right-to-left layout for Arabic. What is largely not translated is the prose: the pages themselves.
That first sentence was not true when this page was written. The sidebar's section headings — Start here, Concepts, Guides — came from docs.json, which is English, and rendered in English in all eleven languages while this page claimed navigation was fully translated. An overclaim on the page whose entire job is not overclaiming.
They are translated now, which seemed a better answer than softening the sentence; it was eight strings. It is recorded here rather than quietly fixed because a page about honesty that edits its own history is worth less than one that does not.
Nine of the ten non-English languages have exactly one translated page — the quickstart. That is what Interface only means in the table above: the menus, buttons and warnings are in your language; the pages are not.
Everything else you open in those languages is the English original, with a notice at the top of the page saying so. That notice is per page and easy to read as an exception. It is not an exception. It is the normal case.
Those nine are not in the language menu, and they are not gone either.
Offering eleven options when nine of them lead to English prose makes the menu a promise the site does not keep — you pick 日本語, get English, and find that out one page at a time. So the menu lists what it can deliver.
Everything else stays: /ja/quickstart and the rest still open, still carry a translated interface, still lay out right-to-left for Arabic, still appear in hreflang, and are still listed here with their real coverage. If you arrive in one of them, that language is added to the menu for you, so you can always see and leave the language you are in.
The line is a file count, not a list somebody maintains: a locale rejoins the menu on the next build once it has translated prose beyond the single entry page. Translate a second page and it comes back on its own.
Why it is set up this way
Falling back to English beats the alternatives. A missing page could 404, or it could serve a stale translation from whenever someone last touched it — and a confidently wrong translation of a page about signature verification is worse than an English page a reader has to work through slowly.
So an untranslated page shows the English body, says it is doing that, and offers a link to help translate it. The language menu marks the same thing before you choose: an option reading "Deutsch (auf Englisch)" is telling you that picking German here will show you English, because this particular page has no German version yet.
Helping
Translations are the single easiest useful contribution to this project, and the one that most needs doing.
- Copy the English page
docs-site/<page>.mdx→docs-site/<locale>/<page>.mdx. Keep the same slug; the build pairs them by path. - Translate the prose, not the code
Code stays as it is. Comments inside code blocks are worth translating; identifiers, endpoints and canonical byte strings are not — a translated
did:svrp:is a broken one. - Keep every safety statement
Credits are a test unit;
status: "active"does not mean online; a valid signature is not a valid identity; nothing here moves value. A translation may be shorter than the English. It may not be shorter by dropping those. - Do not drop the endpoint lists
Prose can be condensed in another language. The list of what exists cannot — CI fails a translated capability page that names fewer endpoints than the English one, because a reader looking up whether something works has to be able to find out.
The table above is generated by counting files, so it updates itself the moment a translation lands — and a page added in English lowers every percentage, which is the honest direction for that number to move.
Translating a second page in any of the nine puts that language back in the site's language menu automatically, on the next build. That is the smallest useful contribution here and it is worth more than its size suggests: it moves a language from "we listed it" to "you can actually read it".
Branch naming, what CI checks, and the one rule that is not negotiable.