Skip to main content

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.

Handmatig inpakken voor i18n is foutgevoelig: ontwikkelaars missen opgeknipte zinnen, verstoren meervoudsvormen met ternaire operatoren en laten in uitzonderingssituaties hardgecodeerde tekenreeksen staan. Deze bugs worden pas na vertaling zichtbaar, wanneer het verhelpen ervan 10 keer zo duur is.

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.

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

Wat 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
De reviewopdracht is volledig alleen-lezen. Voer deze tijdens de ontwikkeling of in CI/CD-pipelines zo vaak uit als je wilt, zonder risico op onbedoelde wijzigingen.

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.

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

Wat 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
De wrapopdracht valideert elke wijziging door je build en testsuite uit te voeren. Als er iets mislukt, wordt de wijziging automatisch teruggedraaid.

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.

FrameworkVertaalfunctieMeervoudsindeling
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

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.

Terminal
mkdir -p .claude/commands
cp commands/i18n-review.md .claude/commands/
cp commands/i18n-wrap.md .claude/commands/
Dit zijn standaardbestanden voor slashopdrachten. Ze werken direct in Claude Code en kunnen worden aangepast voor andere AI-codeassistenten die aangepaste opdrachten ondersteunen.

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.

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

Django-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.

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

Probeer i18n Agent nu

Zet je vertaalbestand hier neer

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

of klik om een bestand te selecteren

Doeltalen

Geen registratie nodigDirecte prijsindicatie

Veelgestelde vragen