i18n Skills
AI-kommandon för granskning och inkapsling av i18n-strängar
Problemet
Din kodbas har 500 hårdkodade strängar utspridda över komponenter, mallar och vyer. Manuell inkapsling tar flera dagar av enformigt sök- och ersättningsarbete. Även efteråt missar du delade meningar som går sönder på tyska, plurallogik som inte fungerar på arabiska och fristående nycklar som fyller språkfilerna med onödigt innehåll.
Lösningen
Två AI-snedstreckskommandon hanterar hela i18n-arbetsflödet. Kör /i18n-review för att skrivskyddat granska koden och sedan /i18n-wrap för att åtgärda allt automatiskt. Båda kommandona identifierar ditt ramverk, förstår språkfilernas format och validerar ändringarna innan de committas.
/i18n-review
Skrivskyddad granskning som hittar delade meningar, trasiga pluralformer, oinkapslade strängar och oanvända nycklar. Ändrar aldrig din kod.
/i18n-wrap
Kapslar automatiskt in hårdkodade strängar med rätt översättningsfunktion, genererar semantiska nycklar, uppdaterar språkfiler och validerar bygget.
Kommandot /i18n-review
Granskningskommandot utför en skrivskyddad granskning av kodbasen. Det söker igenom varje fil efter i18n-problem och skapar en prioriterad rapport med exakta filplatser och åtgärdsförslag. Din kod ändras aldrig.
/i18n-review src/
/i18n-review src/ --framework=next-intlVad som kontrolleras
- Delade meningar: sammanfogade anrop till t() som förstör ordföljden på andra språk
- Överinkapsling: tekniska strängar, CSS-klasser, URL:er och uppräkningsvärden som felaktigt kapslats in med t()
- Underinkapsling: synliga gränssnittssträngar som knappetiketter, rubriker och felmeddelanden som lämnats hårdkodade
- Pluralproblem: ternära operatorer eller kontroller med === 1 i stället för korrekt ICU-pluralsyntax
- Oanvända nycklar: översättningsnycklar som har definierats i språkfiler, men aldrig används i koden
- Hårdkodade formatvärden: datum, valutor och tal som inte använder Intl-formaterare
Kommandot /i18n-wrap
Inkapslingskommandot kapslar automatiskt in hårdkodade strängar med rätt översättningsfunktion för ditt ramverk. Det identifierar ditt i18n-bibliotek, genererar semantiska nycklar grupperade efter komponent eller funktion, uppdaterar språkfilerna och kontrollerar att bygget fortfarande fungerar.
/i18n-wrap src/components/
/i18n-wrap src/ --framework=react-i18nextVad kommandot gör
- Ramverksidentifiering: identifierar ditt i18n-bibliotek och dess översättningsfunktion (t, $t, $_, gettext med flera)
- Generering av semantiska nycklar: skapar meningsfulla nycklar som nav.signIn och errors.notFound i stället för generiska etiketter
- Uppdatering av språkfiler: lägger till nya nycklar i källspråkets fil med rätt format (JSON, YAML, PO med flera)
- Byggvalidering: kör dina bygg-, lint- och testkommandon efter inkapslingen för att upptäcka regressioner
Ramverk som stöds
Båda kommandona identifierar automatiskt ramverket utifrån projektets beroenden. Du kan också ange det uttryckligen med flaggan --framework. Här är de 10 ramverk som stöds med respektive översättningsfunktion och pluralformat.
| Ramverk | Översättningsfunktion | Pluralformat |
|---|---|---|
| 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 |
Installation
Kopiera kommandofilerna till katalogen .claude/commands/. Det är allt – inga beroenden och ingen konfiguration. Kommandona är vanliga Markdown-filer som alla AI-kodassistenter kan köra.
mkdir -p .claude/commands
cp commands/i18n-review.md .claude/commands/
cp commands/i18n-wrap.md .claude/commands/Användningsexempel
React-projekt
Granska en React-app som använder react-i18next och kapsla sedan in alla hårdkodade strängar. Kommandona identifierar react-i18next via package.json och använder rätt t()-funktion och pluralformatet key_one/key_other.
# 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.jsonDjango-projekt
Granska Django-mallar och vyer efter i18n-problem och kapsla sedan in strängar med gettext. Kommandona identifierar Django via settings.py och använder _() för enkla strängar och ngettext() för pluralformer.
# 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 updatedProva i18n Agent nu
Släpp din översättningsfil här
JSON, YAML, PO, XML, CSV, Markdown, Properties
eller klicka för att välja en fil
Målspråk