Skip to main content

i18n Skills

Comandi IA per verificare e racchiudere le stringhe i18n

Il problema

La codebase contiene 500 stringhe codificate direttamente, sparse tra componenti, modelli e viste. Racchiuderle manualmente richiede giorni di monotone operazioni di ricerca e sostituzione. Anche in seguito, sfuggono ancora frasi suddivise che non funzionano in tedesco, logiche plurali errate in arabo e chiavi orfane che appesantiscono i file di lingua.

Racchiudere manualmente le stringhe i18n è soggetto a errori: gli sviluppatori non individuano le frasi suddivise, danneggiano i plurali con operatori ternari e lasciano stringhe codificate direttamente nei casi limite. Questi errori emergono solo dopo la traduzione, quando correggerli costa dieci volte di più.

La soluzione

Due comandi slash IA gestiscono l'intero flusso i18n. Esegua /i18n-review per verificare il codice in sola lettura, quindi /i18n-wrap per correggere tutto automaticamente. Entrambi rilevano il framework, comprendono il formato dei file di lingua e convalidano le modifiche prima del commit.

/i18n-review

Verifica in sola lettura che individua frasi suddivise, plurali non validi, stringhe non racchiuse e chiavi inutilizzate. Non modifica mai il codice.

/i18n-wrap

Racchiude automaticamente le stringhe codificate direttamente con la funzione di traduzione corretta, genera chiavi semantiche, aggiorna i file di lingua e convalida la compilazione.

Comando /i18n-review

Il comando review esegue una verifica in sola lettura della codebase. Esamina ogni file alla ricerca di problemi i18n e produce un rapporto ordinato per priorità con posizioni esatte dei file e suggerimenti di correzione. Il codice non viene mai modificato.

Terminal
/i18n-review src/
/i18n-review src/ --framework=next-intl

Cosa controlla

  • Frasi suddivise: chiamate t() concatenate che alterano l'ordine delle parole in altre lingue
  • Racchiusura eccessiva: stringhe tecniche, classi CSS, URL e valori enum racchiusi erroneamente con t()
  • Racchiusura insufficiente: stringhe visibili dell'interfaccia, come etichette dei pulsanti, titoli e messaggi di errore, lasciate codificate direttamente
  • Problemi con i plurali: operatori ternari o controlli === 1 anziché una sintassi plurale ICU corretta
  • Chiavi inutilizzate: chiavi di traduzione definite nei file di lingua, ma mai richiamate nel codice
  • Valori di formato codificati direttamente: date, valute e numeri che non usano i formattatori Intl
Il comando review opera completamente in sola lettura. Lo esegua tutte le volte che desidera durante lo sviluppo o nelle pipeline CI/CD, senza il rischio di modifiche indesiderate.

Comando /i18n-wrap

Il comando wrap racchiude automaticamente le stringhe codificate direttamente con la funzione di traduzione corretta per il framework. Rileva la biblioteca i18n, genera chiavi semantiche raggruppate per componente o funzionalità, aggiorna i file di lingua e verifica che la compilazione continui a riuscire.

Terminal
/i18n-wrap src/components/
/i18n-wrap src/ --framework=react-i18next

Cosa fa

  • Rilevamento del framework: identifica la biblioteca i18n e la relativa funzione di traduzione (t, $t, $_, gettext e così via)
  • Generazione di chiavi semantiche: crea chiavi significative come nav.signIn ed errors.notFound anziché etichette generiche
  • Aggiornamento dei file di lingua: aggiunge le nuove chiavi al file della lingua di origine nel formato corretto (JSON, YAML, PO e così via)
  • Convalida della compilazione: dopo aver racchiuso le stringhe, esegue i comandi di compilazione, lint e test per rilevare eventuali regressioni
Il comando wrap convalida ogni modifica eseguendo la compilazione e la suite di test. Se qualcosa non riesce, ripristina automaticamente lo stato precedente.

Framework supportati

Entrambi i comandi rilevano automaticamente il framework dalle dipendenze del progetto. Può anche specificarlo esplicitamente con il flag --framework. Ecco i 10 framework supportati, con le rispettive funzioni di traduzione e i formati del plurale.

FrameworkFunzione di traduzioneFormato del plurale
react-i18nextt()key_one / key_other
next-intlt()ICU {count, plural, ...}
vue-i18n$t()Pipe syntax | singular | plural
angular i18n$localizeICU {count, plural, ...}
svelte-i18n$_()ICU {count, plural, ...}
flutter intlS.of(context)Intl.plural()
djangogettext / _()ngettext()
rails i18nt()count key
laravel__() / @langtrans_choice()
swiftNSLocalizedString.stringsdict

Installazione

Copi i file dei comandi nella directory .claude/commands/. È tutto: non servono dipendenze né configurazione. I comandi sono semplici file Markdown eseguibili da qualsiasi assistente di programmazione IA.

Terminal
mkdir -p .claude/commands
cp commands/i18n-review.md .claude/commands/
cp commands/i18n-wrap.md .claude/commands/
Sono file standard per comandi slash. Funzionano immediatamente in Claude Code e possono essere adattati ad altri assistenti di programmazione IA che supportano comandi personalizzati.

Esempi di utilizzo

Progetto React

Verifichi un'app React che usa react-i18next, quindi racchiuda tutte le stringhe codificate direttamente. I comandi rilevano react-i18next dal file package.json e usano la funzione t() e il formato plurale key_one/key_other corretti.

React Project
# Review a React project for i18n issues
/i18n-review src/ --framework=react-i18next

# Wrap all hardcoded strings automatically
/i18n-wrap src/components/ --framework=react-i18next

# Result: t() calls inserted, keys added to en/translation.json

Progetto Django

Verifichi i modelli e le viste Django alla ricerca di problemi i18n, quindi racchiuda le stringhe con gettext. I comandi rilevano Django dal file settings.py e usano _() per le stringhe semplici e ngettext() per i plurali.

Django Project
# Review Django templates and views
/i18n-review myapp/ --framework=django

# Wrap hardcoded strings with gettext
/i18n-wrap myapp/templates/ --framework=django

# Result: _() calls inserted, .po file updated

Provi subito i18n Agent

Trascinare qui il file di traduzione

JSON, YAML, PO, XML, CSV, Markdown, Properties

oppure fare clic per selezionarlo

Lingue di destinazione

Nessuna registrazione richiestaPreventivo immediato

Domande frequenti