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.
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.
/i18n-review src/
/i18n-review src/ --framework=next-intlCosa 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
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.
/i18n-wrap src/components/
/i18n-wrap src/ --framework=react-i18nextCosa 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
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.
| Framework | Funzione di traduzione | Formato del plurale |
|---|---|---|
| react-i18next | t() | key_one / key_other |
| next-intl | t() | ICU {count, plural, ...} |
| vue-i18n | $t() | Pipe syntax | singular | plural |
| angular i18n | $localize | ICU {count, plural, ...} |
| svelte-i18n | $_() | ICU {count, plural, ...} |
| flutter intl | S.of(context) | Intl.plural() |
| django | gettext / _() | ngettext() |
| rails i18n | t() | count key |
| laravel | __() / @lang | trans_choice() |
| swift | NSLocalizedString | .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.
mkdir -p .claude/commands
cp commands/i18n-review.md .claude/commands/
cp commands/i18n-wrap.md .claude/commands/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.
# 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.jsonProgetto 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.
# 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 updatedGuide correlate ai framework
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