Controlla le traduzioni da script Make o npm
Se il tuo progetto ha già un make test o un npm test, aggiungi il controllo delle traduzioni lì. kaeris check esce con 1 quando un placeholder o una chiave sono corrotti, quindi l'intero target fallisce. È offline e gratuito: nessuna API key, nessun account.
KAERIS ha tradotto questa pagina e controllato ogni riga ritraducendola. Un madrelingua non l'ha ancora revisionata. Originale in inglese
La ricetta
Makefile
Installa il checker una volta con pip install kaeris. La riga della ricetta inizia con una tabulazione. Rendere test dipendente da i18n-check esegue il controllo prima dei test.
.PHONY: i18n-check test i18n-check: kaeris check --source locales/en.json --langs de,fr --ci test: i18n-check ./run-tests.sh
Script npm
Lo script chiama solo kaeris dal tuo PATH, quindi il checker è il pacchetto Python da pip install kaeris. pretest viene eseguito prima di test e lo interrompe quando il controllo fallisce.
{
"scripts": {
"i18n:check": "kaeris check --source locales/en.json --langs de,fr --ci",
"pretest": "npm run i18n:check",
"test": "jest"
}
}
Cosa stampa, nelle esecuzioni reali
Output di kaeris 0.2.35, catturato il 27 ottobre 2026. L'ultima riga di ogni box è il codice di uscita che il job CI vede.
npm test
Output di npm test con gli script sopra (lo script test era echo in questa esecuzione). A sinistra: file corretti. A destra: de.json con {nam} invece di {name} e la chiave checkout mancante; npm si ferma prima di test.
$ npm test > [email protected] pretest > npm run i18n:check > [email protected] i18n:check > kaeris check --source locales/en.json --langs de,fr --ci ✓ de: complete & placeholder-safe ✓ fr: complete & placeholder-safe ✓ all locales complete & placeholder-safe > [email protected] test > echo tests would run here tests would run here exit code: 0
$ npm test > [email protected] pretest > npm run i18n:check > [email protected] i18n:check > kaeris check --source locales/en.json --langs de,fr --ci ✗ de: 1 missing key(s): checkout ✗ de: 1 placeholder mismatch(es): greeting: missing ['{name}'], added ['{nam}'] ✗ de: 2 translation fault(s): greeting: lost placeholder {name} greeting: invented placeholder {nam} (not in source) ✓ fr: complete & placeholder-safe ✗ 1 missing key, 1 placeholder mismatch, 2 translation faults exit code: 1
La riga della ricetta del Makefile
Lo stesso comando che esegue il target i18n-check, e il suo codice di uscita.
$ kaeris check --source locales/en.json --langs de,fr --ci ✓ de: complete & placeholder-safe ✓ fr: complete & placeholder-safe ✓ all locales complete & placeholder-safe exit code: 0
$ kaeris check --source locales/en.json --langs de,fr --ci
✗ de: 1 missing key(s): checkout
✗ de: 1 placeholder mismatch(es):
greeting: missing ['{name}'], added ['{nam}']
✗ de: 2 translation fault(s):
greeting: lost placeholder {name}
greeting: invented placeholder {nam} (not in source)
✓ fr: complete & placeholder-safe
✗ 1 missing key, 1 placeholder mismatch, 2 translation faults
exit code: 1
Configuralo in tre passaggi
Installa il checker
Esegui
pip install kaerissulla macchina o nell'immagine CI che esegue i tuoi test.Aggiungi il target o lo script
Aggiungi il target
i18n-checkal Makefile o gli scripti18n:checkepretestapackage.json, con i tuoi--sourcee--langs.Esegui il tuo comando abituale
make testonpm testora eseguono prima il controllo e si interrompono con un codice di uscita non zero quando una traduzione è corrotta.
Come abbiamo verificato questo
Ogni comando in questa pagina è stato eseguito prima di essere scritto qui. Quello che non è stato eseguito è elencato anch'esso.
Cosa è stato eseguito
npm testcon gli script sopra, tranne chetestera unecho(npm 11.17, Node 24), e kaeris 0.2.35 da PyPI sul PATH. File puliti: codice di uscita 0, test eseguiti.de.jsonrotto: codice di uscita 1, test non eseguiti.Cosa non è stato eseguito
makenon è installato sulla macchina dove questo è stato controllato. La riga della ricetta è stata eseguita tramite la shell, che è ciò che make fa con essa, quindi il codice di uscita sopra è reale, ma il Makefile stesso non è stato eseguito da make.npm
Non esiste ancora un pacchetto kaeris nel registro npm, quindi questa pagina non ti indirizza a npm per esso. I progetti Node chiamano il pacchetto Python, come sopra.
Opzioni degne di nota
Fallisce anche per chiavi obsolete
--strictfallisce anche quando una traduzione ha chiavi che la sorgente non ha più.Mantieni i nomi dei brand così come sono scritti
--glossary 'KAERIS,GitHub'fa fallire un target che ha omesso uno dei termini. Lo stesso elenco può risiedere sottokeepinkaeris.json.Layout file diverso
--outè la cartella con le traduzioni e--pattern '{lang}/common.json'i loro nomi file. Predefinito: il layout chekaeris translatescrive.Nessun flag
Con un file
kaeris.jsonnel progetto (scritto dakaeris init),kaeris checkprende sorgente, lingue e cartella da esso.
Domande
Richiede una chiave API o un account?
No. kaeris check è descritto nel suo stesso aiuto come statico, locale e senza API, quindi il job non necessita di secret. La traduzione è un comando separato che richiede una chiave.
Cosa rileva il controllo?
Un placeholder perso o inventato ({name}, %s, {{x}}, plurali ICU), una chiave mancante e un file di localizzazione inesistente. Il confronto è locale e statico. Cosa controlla, con ogni flag
Funziona senza Python?
Il checker è un pacchetto Python, quindi la macchina che esegue il controllo necessita di Python 3.8 o versioni successive. Il pacchetto non dichiara dipendenze.
Continua
Altre ricette: GitHub Actions · GitLab CI · pre-commit
Riferimento CLI · Riferimento Check · Riferimento GitHub Action · Controllo gratuito nel browser · Traduci nel browser