Vai al contenuto
i18n Doctor

i18n Doctor: Ottieni un rapporto completo sullo stato della traduzione con un solo comando

Esegui better-i18n doctor per analizzare l'intero codice in cinque dimensioni: qualità del codice, copertura della traduzione, accuratezza dei segnaposto, chiavi orfane e sincronizzazione CDN. Otterrai un punteggio di integrità compreso tra 0 e 100 con diagnosi utilizzabili.

$ better-i18n doctor
better-i18n · Rapporto i18n Doctor
████████████████░░░░82 / 100A
PASSED (threshold: 70)
Coverage95(3 issues)
Quality88(2 issues)
Code72(8 issues)
Structure100(clean)
Performance91(1 issue)

Cinque livelli di analisi in un unico passaggio

Il sistema esegue la scansione del codice, l'analisi della copertura, la verifica della qualità, il controllo delle prestazioni e i controlli di sincronizzazione CDN, il tutto contemporaneamente, con un punteggio unificato.

Codice — Rilevamento di stringhe hardcoded

La scansione basata su AST individua ogni stringa visibile all'utente non racchiusa in t(). Rileva testo JSX, attributi, logica locale ternaria, messaggi toast e variabili stringa.

Copertura — Traduzioni mancanti

Confronta le chiavi presenti nella lingua di origine con ciascuna lingua di destinazione. Qualsiasi chiave mancante in una lingua di destinazione viene segnalata con il nome esatto dello spazio dei nomi e il percorso.

Qualità — Disallineamento dei segnaposto

Verifica che i segnaposto di interpolazione siano coerenti in tutte le impostazioni locali. Supporta i formati denominati {}, doppia parentesi graffa {{}}, printf%s, modello ${} e posizionale {0}.

Prestazioni — Rilevamento delle chiavi orfane

Individua le chiavi presenti nei file di traduzione ma mai referenziate nel codice. Le chiavi orfane aumentano le dimensioni del payload e creano un debito di manutenzione.

Sincronizzazione — Confronto CDN

Confronta le chiavi estratte dal codice con quelle pubblicate nel CDN. Rileva i problemi relativi alle chiavi mancanti in remoto e inutilizzate in remoto prima che entrino in produzione.

Un punteggio unico per la qualità della tua traduzione

Il medico calcola un punteggio da 0 a 100 in base alle diagnosi effettuate. Gli errori vengono penalizzati con 3,0 punti ciascuno, mentre il contributo di ogni regola in termini di avvisi è limitato a 20 punti, impedendo che una singola regola con migliaia di avvisi azzeri l'intero punteggio.

La soglia di superamento predefinita è 70 (voto B). Utilizzare --ci per bocciare le build al di sotto di questa soglia, oppure iniziare con --report per stabilire una linea di base prima di applicare il punteggio.

Formula di punteggio
score = 100 - (errors × 3.0) - Σ min(rule_warnings × 0.15, 20)

Soglie di voto

A+≥ 90
Passare
A≥ 80
Passare
B≥ 70
Passare
C≥ 50
Fallimento
F< 50
Fallimento

Integrazione CI/CD: bloccare le traduzioni inadeguate prima della loro distribuzione

Si prega di aggiungere Doctor alla propria pipeline CI per rilevare eventuali regressioni di traduzione ad ogni push. L'autenticazione OIDC automatica in GitHub Actions elimina la necessità di gestire le credenziali.

Azioni GitHub con OIDC

È possibile effettuare l'autenticazione automaticamente senza chiavi API utilizzando GitHub Actions OIDC. È sufficiente aggiungere il permesso di scrittura id-token: e eseguire doctor --ci --report.

Soglia di attivazione

Impostare una soglia di superamento (impostazione predefinita: 70) e interrompere la compilazione quando il punteggio scende al di sotto di tale soglia. Iniziare il monitoraggio con --report, quindi applicare con --ci.

JSON leggibile da macchina

Utilizzare --format json per ottenere un output strutturato che può essere convogliato in jq, dashboard personalizzate o automazioni a valle nella pipeline di distribuzione.

Reportistica dashboard

Caricare i risultati nella dashboard di Better i18n con --report per il monitoraggio storico, l'analisi delle tendenze e la visibilità a livello di team sullo stato di salute dell'i18n.

# GitHub Actions example
- run: npx @better-i18n/cli doctor --ci --report

Quando utilizzare quale comando

Doctor è l'opzione completa. Si consiglia di utilizzare comandi mirati quando si necessita di un controllo specifico o si desidera un feedback più rapido nei hook pre-commit.

dottore

Punteggio di integrità completo con cinque livelli di analisi: l'unica fonte attendibile per lo stato di internazionalizzazione del vostro progetto.

scansione

Rilevamento mirato delle stringhe hardcoded. Supporta --staged per gli hook pre-commit.

controllare

Strumento interattivo per verificare la presenza di chiavi di traduzione mancanti o inutilizzate con istruzioni guidate.

sincronizzazione

Confronto completo tra locale e remoto che mostra contemporaneamente sia le chiavi mancanti che quelle inutilizzate.

Progettato per flussi di lavoro i18n reali

Punteggio salute 0–100

Punteggio unico con suddivisione per categoria e soglia CI superata/non superata. Monitorare lo stato di salute della traduzione nel tempo.

Monitoraggio dell'ambito lessicale

Rilevamento intelligente dello spazio dei nomi sia per useTranslations che per getTranslations. Ogni chiamata t() viene mappata al proprio spazio dei nomi corretto.

Supporto per componenti server

Supporto completo per le funzioni server asincrone di Next.js App Router. Le chiamate getTranslations lato server vengono rilevate e controllate.

Regole configurabili

Disattivare o declassare le regole in i18n.config.ts. Impostare le regole su "error", "warning" o "off" in base alle esigenze del proprio progetto.

Filtraggio intelligente

Ignora automaticamente i nomi delle classi CSS, gli URL, i percorsi di importazione e le costanti di sviluppo. Fornisce esclusivamente risultati utilizzabili.

Registro di controllo dettagliato

Trasparenza approfondita con --verbose. Riepiloghi dell'ambito, informazioni sui tempi e tracce di risoluzione dello spazio dei nomi per il debug.

Verifica lo stato della tua traduzione prima della spedizione

Si consiglia di eseguire una volta Better-i18n Doctor per ottenere la propria linea di base. Si raccomanda di aggiungerlo alla CI per evitare di distribuire nuovamente traduzioni incomplete.