Opzioni
-
--host <url>Host API contro cui autenticarsi. -
--token <key>Passare la chiave senza prompt invece che interattivamente.
Esempio
sonenta login --host https://api.sonenta.com CLI
v0.2.1 · npm · MITUna riga di comando leggera e scriptabile per tutto ciò che altrimenti fareste nella dashboard: importare un progetto i18next esistente, fare push e pull delle traduzioni, confrontare la CI con il remoto, pubblicare una release CDN e creare uno snapshot dei bundle per una build offline-first. MIT, su npm.
Rottura · 0.1 → 0.2
Tutta la CLI passa ora attraverso la superficie MCP: richiede una chiave API con scope mcp:* — le chiavi limitate al progetto restituiscono 403. Generatene una nella dashboard sotto Org Settings → API Keys e riemettete qualsiasi chiave usata con la 0.1.
Solo npm — non esiste una formula Homebrew per la CLI. Richiede Node 18 o più recente e installa il comando sonenta.
terminal 1# installa una volta, globalmente2npm i -g @sonenta/cli 4# oppure esegui senza installare5npx @sonenta/cli <command> Ogni chiamata invia Authorization: ApiKey <prefix>.<secret> con scope mcp:*. Effettuate il login una volta per memorizzare la chiave in ~/.sonenta/credentials, oppure impostate SONENTA_TOKEN in CI.
terminal 1# interattivo — memorizza la chiave per host in ~/.sonenta/credentials (0600)2sonenta login --host https://api.sonenta.com3API key: snt_live_••••••••.••••••••••••••••4✓ salvato per https://api.sonenta.com 6# CI — senza prompt, la chiave viene letta dall'ambiente7export SONENTA_TOKEN=snt_live_<prefix>.<secret>8sonenta push Ordine di risoluzione, vince il primo: la variabile d'ambiente SONENTA_TOKEN, poi ~/.sonenta/credentials per l'host attivo. Generate la chiave sotto Org Settings → API Keys con scope mcp:*.
sonenta init scrive un sonenta.config.json nel vostro repository (risolto risalendo dalla directory corrente). Le credenziali vivono separatamente, per utente, e non vengono mai committate.
sonenta.config.json 1# committato nel vostro repository — nessun segreto qui2{3 "host": "https://api.sonenta.com",4 "project_uuid": "<project_uuid>",5 "version_slug": "main"6} ~/.sonenta/credentials 1# ~/.sonenta/credentials — modalità 0600, per utente, da non committare mai2{ "default": "https://api.sonenta.com",3 "hosts": {4 "https://api.sonenta.com": { "api_key": "snt_live_..." }5 } } version_slug vale main per impostazione predefinita. Tenete la chiave API fuori da sonenta.config.json — appartiene solo al file delle credenziali o a SONENTA_TOKEN.
Raggruppati per attività — configurare autenticazione e config, ispezionare un progetto o sincronizzare le traduzioni. Ogni comando passa attraverso la superficie MCP e rispetta sonenta.config.json.
--host <url> Host API contro cui autenticarsi. --token <key> Passare la chiave senza prompt invece che interattivamente. sonenta login --host https://api.sonenta.com Nessuna opzione.
sonenta logout Nessuna opzione.
sonenta whoami --project <uuid> UUID del progetto da scrivere nella config (obbligatorio). --version <slug> Slug di versione da puntare (predefinito main). --force Sovrascrivere un file di config esistente. sonenta init --project <uuid> --version main Nessuna opzione.
sonenta projects list --namespace <slug> Limitare a un namespace. sonenta keys list --namespace common --language <code> Limitare il confronto a una lingua. --namespace <slug> Limitare il confronto a un namespace. --src <dir> Directory sorgente (predefinito locales). sonenta status --language <code> Filtrare per lingua. --namespace <slug> Filtrare per namespace. --limit <n> Limitare il numero di righe. sonenta missing --limit 50 --dry-run Solo anteprima; non invia nulla. --status <draft|translated> Stato in ingresso (predefinito translated). --language <code> Forzare la lingua invece di dedurla dal percorso. --namespace <slug> Forzare il namespace (obbligatorio per un <lang>.json nudo). --version <slug> Puntare a una versione non predefinita. sonenta import locales/fr/common.json --src <dir> Directory sorgente (predefinito locales). --dry-run Solo anteprima; non invia nulla. --status <state> Stato in ingresso (predefinito translated). sonenta push --dry-run --language <code> Limitare a una lingua. --namespace <slug> Limitare a un namespace. --dest <dir> Directory di destinazione (predefinito locales). sonenta pull --language fr --nested Emettere alberi annidati invece di chiavi piatte. --out <dir> Scrivere i file in una directory invece che su stdout. sonenta export --nested --out ./dump --version <slug> Versione da pubblicare (predefinito main). --dry-run Solo anteprima; non pubblica nulla. sonenta releases publish --format <ts|json> Formato di output: ts (predefinito) o json. --out <file> Scrivere su un file invece che su stdout. --cdn <base> Base CDN (predefinito https://cdn.sonenta.com). sonenta snapshot --out src/sonenta-bundles.ts Ogni comando accetta anche --host <url> per sovrascrivere l'host API configurato per una singola esecuzione.
State aggiornando dalla 0.1? Due modifiche richiedono un intervento.
mcp:* — le chiavi limitate al progetto ora restituiscono 403. push ora invia l'intero albero locales/ in un'unica chiamata di import (prima era una creazione di chiave più un PUT per traduzione). È idempotente e mostra create / aggiornate / invariate. import, export, releases publish, snapshot e projects list sono nuovi nella 0.2.0.