Skip to main content

i18n prasmes

MI komandas i18n virkņu auditēšanai un ietveršanai

Problēma

Kodu bāzē ir 500 tieši ierakstītu virkņu, kas izkaisītas komponentos, veidnēs un skatos. Manuāla ietveršana nozīmē vairākas dienas apnicīga meklēšanas un aizstāšanas darba. Pat pēc ietveršanas joprojām palaižat garām sadalītus teikumus, kas sabojājas vācu valodā, daudzskaitļa loģiku, kas nedarbojas arābu valodā, un bāreņatslēgas, kas uzpūš lokalizācijas failus.

Manuāla i18n ietveršana ir kļūdu pilna: izstrādātāji palaiž garām sadalītus teikumus, sabojā daudzskaitli ar ternārajiem operatoriem un robežgadījumos atstāj tieši ierakstītas virknes. Šīs kļūdas parādās tikai pēc tulkošanas, kad to labošana ir 10 reižu dārgāka.

Risinājums

Divas MI slīpsvītras komandas, kas apstrādā visu i18n darbplūsmu. Palaidiet /i18n-review tikai lasāmam koda auditam, pēc tam /i18n-wrap, lai visu automātiski izlabotu. Abas komandas nosaka jūsu sistēmu, izprot lokalizācijas failu formātu un pirms komitēšanas validē izmaiņas.

/i18n-review

Tikai lasāms audits, kas atrod sadalītus teikumus, bojātu daudzskaitli, neietvertas virknes un neizmantotas atslēgas. Nekad nemaina kodu.

/i18n-wrap

Automātiski ietver tieši ierakstītas virknes ar pareizo tulkošanas funkciju, ģenerē semantiskas atslēgas, atjaunina lokalizācijas failus un validē būvējumu.

/i18n-review komanda

Pārskatīšanas komanda veic tikai lasāmu kodu bāzes auditu. Tā skenē katru failu, meklējot i18n problēmas, un izveido prioritizētu pārskatu ar precīzām failu atrašanās vietām un labošanas ieteikumiem. Jūsu kods nekad netiek mainīts.

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

Ko tā pārbauda

  • Sadalīti teikumi: savienoti t() izsaukumi, kas citās valodās sabojā vārdu secību
  • Pārmērīga ietveršana: tehniskas virknes, CSS klases, URL un uzskaitījumu vērtības nepareizi ietvertas ar t()
  • Nepietiekama ietveršana: redzamas UI virknes, piemēram, pogu etiķetes, virsraksti un kļūdu ziņojumi, atstātas tieši ierakstītas
  • Daudzskaitļa problēmas: ternārie operatori vai === 1 pārbaudes pareizas ICU daudzskaitļa sintakses vietā
  • Neizmantotas atslēgas: lokalizācijas failos definētas tulkojumu atslēgas, uz kurām kodā nekad nav atsauces
  • Tieši ierakstītas formāta vērtības: datumi, valūtas un skaitļi neizmanto Intl formatētājus
Pārskatīšanas komanda ir pilnībā tikai lasāma. Izstrādes laikā vai CI/CD konveijeros palaidiet to, cik bieži vēlaties, bez nejaušu izmaiņu riska.

/i18n-wrap komanda

Ietveršanas komanda automātiski ietver tieši ierakstītas virknes ar jūsu sistēmai pareizo tulkošanas funkciju. Tā nosaka i18n bibliotēku, ģenerē pēc komponenta vai funkcijas grupētas semantiskas atslēgas, atjaunina lokalizācijas failus un validē, vai būvējums joprojām izdodas.

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

Ko tā dara

  • Sistēmas noteikšana: identificē i18n bibliotēku un tās tulkošanas funkciju (t, $t, $_, gettext u.c.)
  • Semantisku atslēgu ģenerēšana: izveido jēgpilnas atslēgas, piemēram, nav.signIn un errors.notFound, nevis vispārīgas etiķetes
  • Lokalizācijas failu atjauninājumi: pievieno jaunas atslēgas avota lokalizācijas failam pareizajā formātā (JSON, YAML, PO u.c.)
  • Būvējuma validācija: pēc ietveršanas palaiž būvējuma, analīzes un testu komandas, lai atrastu regresijas
Ietveršanas komanda validē katru izmaiņu, palaižot būvējumu un testu komplektu. Ja kaut kas neizdodas, tā automātiski atsauc izmaiņas.

Atbalstītās sistēmas

Abas komandas automātiski nosaka sistēmu pēc projekta atkarībām. Varat to arī skaidri norādīt ar karodziņu --framework. Lūk, 10 atbalstītās sistēmas, to tulkošanas funkcijas un daudzskaitļa formāti.

SistēmaTulkošanas funkcijaDaudzskaitļa formāts
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

Instalēšana

Nokopējiet komandu failus uz direktoriju .claude/commands/. Tas arī viss — bez atkarībām vai konfigurācijas. Komandas ir vienkārši Markdown faili, ko var izpildīt jebkurš MI kodēšanas asistents.

Terminal
mkdir -p .claude/commands
cp commands/i18n-review.md .claude/commands/
cp commands/i18n-wrap.md .claude/commands/
Tie ir standarta slīpsvītras komandu faili. Tie uzreiz darbojas Claude Code un ir pielāgojami citiem MI kodēšanas asistentiem, kas atbalsta pielāgotas komandas.

Lietošanas piemēri

React projekts

Pārskatiet React lietotni, kas izmanto react-i18next, pēc tam ietveriet visas tieši ierakstītās virknes. Komandas nosaka react-i18next no package.json un izmanto pareizo t() funkciju un key_one/key_other daudzskaitļa formātu.

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 projekts

Auditējiet Django veidnes un skatus, lai atrastu i18n problēmas, pēc tam ietveriet virknes ar gettext. Komandas nosaka Django no settings.py un vienkāršām virknēm izmanto _(), bet daudzskaitlim — ngettext().

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

Izmēģiniet i18n Agent tūlīt

Nometiet tulkošanas failu šeit

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

vai noklikšķiniet, lai izvēlētos

Mērķa valodas

Reģistrācija nav vajadzīgaTūlītēja tāme

Bieži uzdotie jautājumi