i18n Skills
AI-opdrachten voor controle en het inpakken van i18n-tekenreeksen
Het probleem
Je codebase bevat 500 hardgecodeerde tekenreeksen, verspreid over componenten, sjablonen en weergaven. Handmatig inpakken kost dagenlang omslachtig zoek-en-vervangwerk. Zelfs daarna mis je nog opgeknipte zinnen die in het Duits stuklopen, meervoudslogica die in het Arabisch faalt en verweesde sleutels die je taalbestanden onnodig groot maken.
De oplossing
Twee AI-slashopdrachten verzorgen de volledige i18n-workflow. Voer /i18n-review uit om je code alleen-lezen te controleren en daarna /i18n-wrap om alles automatisch te herstellen. Beide opdrachten detecteren je framework, begrijpen de indeling van je taalbestanden en valideren wijzigingen voordat ze worden gecommit.
/i18n-review
Een alleen-lezencontrole die opgeknipte zinnen, defecte meervoudsvormen, niet-ingepakte tekenreeksen en ongebruikte sleutels vindt. Wijzigt je code nooit.
/i18n-wrap
Pakt hardgecodeerde tekenreeksen automatisch in met de juiste vertaalfunctie, genereert semantische sleutels, werkt taalbestanden bij en valideert de build.
Opdracht /i18n-review
De reviewopdracht voert een alleen-lezencontrole van je codebase uit. De opdracht scant elk bestand op i18n-problemen en maakt een geprioriteerd rapport met exacte bestandslocaties en voorgestelde oplossingen. Je code wordt nooit gewijzigd.
/i18n-review src/
/i18n-review src/ --framework=next-intlWat wordt gecontroleerd
- Opgeknipte zinnen: aaneengeschakelde t()-aanroepen die de woordvolgorde in andere talen verstoren
- Overmatig inpakken: technische tekenreeksen, CSS-klassen, URL's en enumwaarden die ten onrechte met t() zijn ingepakt
- Onvoldoende inpakken: zichtbare interfaceteksten zoals knoplabels, koppen en foutmeldingen die hardgecodeerd zijn gebleven
- Problemen met meervoudsvormen: ternaire operatoren of === 1-controles in plaats van correcte ICU-meervoudssyntaxis
- Ongebruikte sleutels: vertaalsleutels die in taalbestanden zijn gedefinieerd, maar nergens in de code worden gebruikt
- Hardgecodeerde opmaakwaarden: datums, valuta's en getallen waarvoor geen Intl-formatters worden gebruikt
Opdracht /i18n-wrap
De wrapopdracht pakt hardgecodeerde tekenreeksen automatisch in met de juiste vertaalfunctie voor je framework. De opdracht detecteert je i18n-bibliotheek, genereert semantische sleutels die per component of functie zijn gegroepeerd, werkt je taalbestanden bij en valideert of de build nog steeds slaagt.
/i18n-wrap src/components/
/i18n-wrap src/ --framework=react-i18nextWat de opdracht doet
- Frameworkdetectie: herkent je i18n-bibliotheek en de bijbehorende vertaalfunctie (t, $t, $_, gettext enz.)
- Semantische sleutelgeneratie: maakt betekenisvolle sleutels zoals nav.signIn en errors.notFound in plaats van algemene labels
- Taalbestanden bijwerken: voegt nieuwe sleutels in de juiste indeling (JSON, YAML, PO enz.) toe aan je brontaalbestand
- Buildvalidatie: voert na het inpakken je build-, lint- en testopdrachten uit om regressies te onderscheppen
Ondersteunde frameworks
Beide opdrachten detecteren je framework automatisch aan de hand van je projectafhankelijkheden. Je kunt het ook expliciet opgeven met de flag --framework. Hieronder staan de 10 ondersteunde frameworks met hun vertaalfuncties en meervoudsindelingen.
| Framework | Vertaalfunctie | Meervoudsindeling |
|---|---|---|
| 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 |
Installatie
Kopieer de opdrachtbestanden naar je map .claude/commands/. Dat is alles — geen afhankelijkheden en geen configuratie. De opdrachten zijn gewone Markdown-bestanden die elke AI-codeassistent kan uitvoeren.
mkdir -p .claude/commands
cp commands/i18n-review.md .claude/commands/
cp commands/i18n-wrap.md .claude/commands/Gebruiksvoorbeelden
React-project
Controleer een React-app die react-i18next gebruikt en pak daarna alle hardgecodeerde tekenreeksen in. De opdrachten detecteren react-i18next in je package.json en gebruiken de juiste t()-functie en meervoudsindeling 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-project
Controleer Django-sjablonen en -weergaven op i18n-problemen en pak de tekenreeksen daarna in met gettext. De opdrachten detecteren Django in je settings.py en gebruiken _() voor eenvoudige tekenreeksen en ngettext() voor meervoudsvormen.
# 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 updatedGerelateerde frameworkhandleidingen
Probeer i18n Agent nu
Zet je vertaalbestand hier neer
JSON, YAML, PO, XML, CSV, Markdown, Properties
of klik om een bestand te selecteren
Doeltalen