JSON / JavaScript
Dialecto edits JSON message catalogs the same way it edits gettext: it parses your files, splices each change into the original bytes and sends the result back as a pull request, so a one-string edit is a one-line diff. Key order, indentation and every untouched line stay as they were.
JSON projects are switched on per account during the soft launch, so when you ask for early access, mention that your catalogs are JSON.
The shapes it understands
- Flat catalogs: one
<locale>.jsonper language, with message keys at the top level and ICU message syntax in the values. - Nested catalogs: the key trees used by i18next, next-intl and
vue-i18n. Dialecto reads the key path (
checkout.shipped) from the nesting, using the key separator you configure. - Browser-extension catalogs:
_locales/<locale>/messages.json, where each entry’smessageis the text and itsdescriptionis the translator note.
Dialecto detects the layout from your files, and you can set it by hand
in the project’s settings. Placeholders are checked in the style your
catalog uses: ICU {name}, i18next {{name}} or the browser extension’s
$name$.
Setup
Register the repository with the JSON format and name the source language. The translation file paths are confirmed in the project’s settings, and files arrive the same two ways as for gettext: read by the GitHub App by default, or sent from your CI if you block read access. See Getting started and Scanning & CI.
Editing
The catalog lists each file’s key groups so you can work through one area at a time. Message keys are never sent to machine translation or translation memory; only the source text is. An entry that cannot be edited safely, such as a value that is not text, is read-only, and the editor says why.
In-context editing for Astro
The Astro add-on lets you open your running site, click any text and
edit it in the Dialecto sidebar. It is one dependency-free module that
you add to astro.config.mjs, and it runs only under astro dev:
astro build and astro preview get no markers, no overlay and no
network calls. Dialecto offers the module as a download on the
project’s settings page. It signs in with your Dialecto account and
finds the project from your site’s git remote.
Plural and select messages preview as you type, using the arguments the page itself formatted them with. The add-on’s page markers and previews cover flat catalogs. Nested and browser-extension catalogs are edited in the web editor and ship as pull requests just the same.
Renaming keys
Renaming a key in a flat catalog can carry the call sites in your code
with it, so one pull request changes the catalogs and the code that
reads them. This relies on a scanner that reads your code in CI, which
needs Astro 7 and Vite 8, and on a repository-side action that applies
the code changes. Dialecto computes the rewrites today, and the action
that applies them, dialecto-eu/source-rewrite@v1, is public on GitHub.
Renaming a nested key is not offered.
Not covered yet
Rails YAML catalogs are in a private beta for teams we invite, and have no public guide yet.