@eloqnt/cli
v0.6.33
Published
A linter for your translation files, with AI translation built in.
Maintainers
Readme
@eloqnt/cli
eloqnt/cli is a linter for your translation files. It catches errors before they ship, and optionally fills in missing translations.
Start by linting your project for common problems:
$ eloqnt lint
messages/es.json
│
│ "kFvGpR": "Tienes mensajes nuevos"
│ ─┬──────────────────────
│ ╰─ Missing ICU argument: {count} (inconsistent-args)
│
│ "X0ha1a": "Save changes"
│ ─┬────────────
│ ╰─ Missing translation in es.json (missing-translation)
✗ 1 error
! 1 warning
→ Run `eloqnt translate` to fill in 1 missing translationLinting runs static analysis on your source code and matches it against your messages, catching issues like unused messages, missing translations, broken ICU arguments, and more.
Setup
1. Install the CLI
Add the CLI as a local project dependency:
npm install @eloqnt/cli --save-devIf you're in a monorepo, install it within local packages as needed.
2. Add a config file
Create a config file at .eloqnt/config.ts:
import {defineConfig} from '@eloqnt/cli';
export default defineConfig({
// The folder containing your source code
// (optional, only if you use next-intl)
srcPath: './src',
// Where and how you store your messages
messages: {
path: './messages',
locales: 'infer',
sourceLocale: 'en',
format: 'json'
}
});All paths are relative to your project root. For more sophisticated setups like monorepos or when not using next-intl, see the configuration docs.
3. Lint your source code and messages
npx eloqnt lintSee eloqnt lint for details.
Start translating
Once linting works, you can optionally use eloqnt translate to fill in any missing translations:
$ eloqnt translate
✔ Context enrichment complete
✔ Styleguides loaded (global, es)
✔ Translated de, es via eloqnt/engine (hosted)
✔ Post-translation checks done
messages/
de.json 2 translated
es.json 2 translated
✔ Project fully translatedSource strings are enriched with context from their call sites, styleguides steer tone and terminology, and post-translation checks retry anything that comes back wrong.
To get started with translating, log into eloqnt/engine first.
