Soft launch Dialecto is still in testing, and details on this site may change as we finish it.

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>.json per 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’s message is the text and its description is 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.