Changelog
@eloqnt/cli
Historic reference of all changes to @eloqnt/cli.
0.6.33
- Add
eloqnt crowdin context extract,upload, anddownloadto add a source outline of where your code uses each string to its context on Crowdin. Context you write in place of an outline is kept until the string’s text changes. - Fail with an error when a
srcPathfolder doesn’t exist or holds no next-intl calls, instead of runninglint,translate, andreview sourcewithout source analysis.
0.6.31
eloqnt reviewnow reports its post-review checks as a step of their own, the wayeloqnt translatedoes for its post-translation checks.
0.6.28
ELOQNT_ENGINE_URLnow takes the production engine origin or a localhost address, and reports anINVALID_ENGINE_URLerror for anything else.- Publish under the MIT license, with a
LICENSEfile in the package.
0.6.27
- @eloqnt/sdk@0.6.25
0.6.26
- @eloqnt/sdk@0.6.24
0.6.24
- @eloqnt/sdk@0.6.22
0.6.23
- @eloqnt/sdk@0.6.21
0.6.22
- @eloqnt/sdk@0.6.20
0.6.19
- Recognize locales CLDR carries no plural rules for, such as Occitan (
oc) and Latin (la). They no longer reportinvalid-locale,eloqnt translateno longer refuses them, and the rules that need plural categories stand down for them while every other rule keeps checking.
0.6.17
- Fix link to styleguide page.
0.6.16
- Added a
localesselector tolint.overrides, so a rule can be scoped to specific locales instead of turned off everywhere.
0.6.14
studio.eloqnt.devwas renamed toengine.eloqnt.dev, with CLI docs remaining atcli.eloqnt.dev.
0.6.12
- Improve
eloqnt crowdinerrors - Support
destincrowdin.yml.
0.6.10
- Pin
@swc/coreminor range to avoid incompatibility with latest@swc/coreversion (a full upgrade will ship later).
0.6.9
- Added the
lintconfig: set a rule's severity or turn it off vialint.rules('error','warn','off'), and scope settings to matching message keys vialint.overrides.
0.6.8
- Support
languages_mappingandcontent_segmentationincrowdin.yml. - A
translaterun now runs in local batches and reports how far along it is while it works.
0.6.7
- Add a
styleguidesconfig option that sets the directory styleguides are loaded from, e.g. to share one set across multiple projects.
0.6.6
messages.formatcan now reference a codec from an installed package by its name (e.g.'@eloqnt/format-apple-xcstrings').defineCodecnow accepts a shared-file variant for formats that keep every locale in one file.messages.pathentries can now split into{source, targets}for when source and target files need a different path structure.
0.6.5
eloqnt lintnow links the docs for the rules it reports (also for--jsonand GitHub Actions annotations)
0.6.2
- Add a
missing-other-caselint rule for aplural,selectordinal, orselectstatement without anothercase, which throws where the message is formatted. Messages like these were previously skipped by every rule, so their ICU arguments now get checked too. - A translation no longer has to spell out every plural category its locale can select on (ref). The rule is replaced by two, since its halves answer to different authorities:
unreachable-plural-casefor a case the target locale never selects, andinconsistent-exact-pluralsfor=0-style cases that don't match the source.
0.6.0
- Add an
inconsistent-pluralslint rule that reports plural cases which don't match the target locale's CLDR categories. - Locales that aren't recognised now fail loudly instead of being silently treated as the default locale. A new
invalid-localelint rule reports them, andeloqnt translatestops before spending inference on one. eloqnt translatenow reads CLDR data sopluralandselectordinalstatements are guaranteed to be adjusted for target locales.
0.5.4
- Add
eloqnt crowdincommands for syncing messages with a Crowdin project viacrowdin.yml:upload sources,upload translations, anddownload translations.
0.5.3
- Link each command's docs page from
--helpoutput, with command descriptions kept to one line.
0.5.1
- Print the installed CLI version with
eloqnt --version(or-v).
0.5.0
- Inside GitHub Actions,
eloqnt lintnow surfaces issues as file annotations on the pull request, including the call site's line forundefined-key. eloqnt lintnow distinguishes errors from warnings. Missing translations are warnings and no longer fail the run, so lint can gate CI without requiring translations on every commit. Pass--strictto treat warnings as errors.
eloqnt reviewnow notes in the diff when a fix was also synced to your source code (foruseExtracted)
0.4.2
- Normalize the spacing above the
eloqnt translatehint ineloqnt lintoutput to a single blank line, matchingeloqnt review.
0.4.1
- The source review now runs as
eloqnt review(the expliciteloqnt review sourceform keeps working).
0.4.0
- Added
eloqnt review source: Reviews source strings for typos and grammatical errors and fixes them in place.
0.3.2
- Note in
eloqnt lintwhen source code analysis is skipped due to an absentsrcPath, and reword the equivalent note ineloqnt translate. eloqnt whoaminow notes that a trial includes 1/4 of the regular monthly usage.
0.3.1
- Support path templates for
messages.pathto support non-next-intl consumers (e.g. i18next)
0.3.0
- Drop internal exports from
@eloqnt/sdk's public entry. The main entry now surfaces only what's intended for external use (lint,defineConfig,defineCodec,translate, and their return types); everything else moved to@eloqnt/sdk/_internalfor workspace-only consumption.
eloqnt translatenow confirms whether your styleguides were picked up before the engine runs.- Drop the engine API's backward-compat fields for pre-split CLIs. The older clients weren't actually picking them up in practice, so the fallback wasn't doing anything anyway.
- Merge
@eloqnt/inferenceinto@eloqnt/sdk. - Add support for messages extracted by experimental
useExtractedinnext-intl@<4.13.
0.2.0
- BYOM projects pinning
@ai-sdk/*provider packages should update them to versions that target AI SDK 7. Also dropproviderOptionsfromdefineConfig. - Upgrade to AI SDK 7.
0.1.1
- Identifies itself with a custom user agent so the studio's "Logged-in CLIs" list can show your device name and OS. CLI sessions logged in before this version still appear in the list — as "Unknown device" — and you can run
eloqnt logout && eloqnt loginto refresh the entry with the new metadata.
0.1.0
- Split plans into "Hosted model" and "Bring your own model"
0.0.9
- Run static post-translation checks (ICU placeholder parity) on every received translation, with up to two automatic re-translations on failure.
0.0.8
- Consume AST context for
.jsonformats, output file reference forundefined-keyrule
0.0.7
eloqnt whoaminow shows included usage and when it resets.
0.0.4
- Refine CLI UX and align account commands with the shared error contract.
- Handle messages split across several
messages.pathfolders correctly, including a newduplicate-idlint rule for ids repeated across folders.
0.0.3
- The
inconsistent-argslint rule now catches rich tags (<b>…</b>) a translation drops or invents, not just{argument}placeholders. Placeholders are compared by their literal token, so a<name>tag never stands in for a{name}argument, and the reporter underlines the stray tag in the value.
0.0.2
- Make CLI errors friendlier.
0.0.1
- Exercise the automated release pipeline. No functional changes since the initial 0.0.0 publish.