Skip to main content

i18n įgūdžiai

DI komandos i18n eilutėms tikrinti ir apgaubti

Problema

Kodų bazėje yra 500 tiesiogiai įrašytų eilučių, išsibarsčiusių komponentuose, šablonuose ir rodiniuose. Rankinis apgaubimas reiškia kelias dienas varginančio paieškos ir keitimo darbo. Net apgaubę vis tiek praleidžiate suskaidytus sakinius, kurie sugenda vokiečių kalba, daugiskaitos logiką, kuri neveikia arabų kalba, ir perteklinius raktus, kurie išpučia lokalės failus.

Rankinis i18n apgaubimas kupinas klaidų: kūrėjai praleidžia suskaidytus sakinius, sugadina daugiskaitą trinariais operatoriais ir kraštiniuose atvejuose palieka tiesiogiai įrašytų eilučių. Šios klaidos išryškėja tik išvertus, kai jas taisyti 10 kartų brangiau.

Sprendimas

Dvi DI pasvirojo brūkšnio komandos, apimančios visą i18n darbo eigą. Paleiskite /i18n-review tik skaitymo kodo auditui, tada /i18n-wrap viskam automatiškai pataisyti. Abi komandos aptinka jūsų sistemą, supranta lokalės failų formatą ir prieš įtraukdamos į saugyklą patikrina pakeitimus.

/i18n-review

Tik skaitymo auditas, aptinkantis suskaidytus sakinius, sugadintą daugiskaitą, neapgaubtas eilutes ir nenaudojamus raktus. Niekada nekeičia kodo.

/i18n-wrap

Automatiškai apgaubia tiesiogiai įrašytas eilutes tinkama vertimo funkcija, sugeneruoja semantinius raktus, atnaujina lokalės failus ir patikrina komponavimą.

/i18n-review komanda

Peržiūros komanda atlieka tik skaitymo kodų bazės auditą. Ji nuskaito kiekvieną failą, ieškodama i18n problemų, ir pateikia pagal svarbą surikiuotą ataskaitą su tiksliomis failų vietomis bei taisymo pasiūlymais. Jūsų kodas niekada nekeičiamas.

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

Ką ji tikrina

  • Suskaidyti sakiniai: sujungti t() iškvietimai, kurie kitose kalbose sugadina žodžių tvarką
  • Perteklinis apgaubimas: techninės eilutės, CSS klasės, URL ir išvardijimo reikšmės netinkamai apgaubtos t()
  • Nepakankamas apgaubimas: matomos UI eilutės, pavyzdžiui, mygtukų etiketės, antraštės ir klaidų pranešimai, paliktos tiesiogiai įrašytos
  • Daugiskaitos problemos: trinariai operatoriai arba === 1 patikros vietoje tinkamos ICU daugiskaitos sintaksės
  • Nenaudojami raktai: lokalės failuose apibrėžti vertimo raktai, kurie niekada nenaudojami kode
  • Tiesiogiai įrašytos formato reikšmės: datos, valiutos ir skaičiai nenaudoja Intl formatuoklių
Peržiūros komanda yra visiškai tik skaitymo. Kūrimo metu ar CI/CD konvejeriuose paleiskite ją kiek tik norite – nėra netyčinių pakeitimų rizikos.

/i18n-wrap komanda

Apgaubimo komanda automatiškai apgaubia tiesiogiai įrašytas eilutes jūsų sistemai tinkama vertimo funkcija. Ji aptinka i18n biblioteką, generuoja pagal komponentą ar funkciją sugrupuotus semantinius raktus, atnaujina lokalės failus ir patikrina, ar komponavimas vis dar pavyksta.

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

Ką ji atlieka

  • Sistemos aptikimas: nustato i18n biblioteką ir jos vertimo funkciją (t, $t, $_, gettext ir kt.)
  • Semantinių raktų generavimas: sukuria prasmingus raktus, pavyzdžiui, nav.signIn ir errors.notFound, o ne bendrines etiketes
  • Lokalės failų naujiniai: prideda naujus raktus prie šaltinio lokalės failo tinkamu formatu (JSON, YAML, PO ir kt.)
  • Komponavimo tikrinimas: po apgaubimo paleidžia komponavimo, analizės ir testų komandas, kad aptiktų regresijas
Apgaubimo komanda patikrina kiekvieną pakeitimą paleisdama komponavimą ir testų rinkinį. Jei kas nors nepavyksta, ji automatiškai atšaukia pakeitimus.

Palaikomos sistemos

Abi komandos automatiškai aptinka sistemą pagal projekto priklausomybes. Ją taip pat galite aiškiai nurodyti žyma --framework. Pateikiame 10 palaikomų sistemų, jų vertimo funkcijas ir daugiskaitos formatus.

SistemaVertimo funkcijaDaugiskaitos formatas
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

Diegimas

Nukopijuokite komandų failus į .claude/commands/ katalogą. Štai ir viskas – jokių priklausomybių ar konfigūracijos. Komandos yra paprasti Markdown failai, kuriuos gali vykdyti bet kuris DI kodavimo asistentas.

Terminal
mkdir -p .claude/commands
cp commands/i18n-review.md .claude/commands/
cp commands/i18n-wrap.md .claude/commands/
Tai standartiniai pasvirojo brūkšnio komandų failai. Jie iškart veikia Claude Code ir gali būti pritaikyti kitiems DI kodavimo asistentams, palaikantiems pasirinktines komandas.

Naudojimo pavyzdžiai

React projektas

Peržiūrėkite react-i18next naudojančią React programą, tada apgaubkite visas tiesiogiai įrašytas eilutes. Komandos aptinka react-i18next iš package.json ir naudoja tinkamą t() funkciją bei key_one/key_other daugiskaitos formatą.

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 projektas

Patikrinkite Django šablonus ir rodinius dėl i18n problemų, tada apgaubkite eilutes su gettext. Komandos aptinka Django iš settings.py ir paprastoms eilutėms naudoja _(), o daugiskaitai – 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

Išbandykite i18n Agent dabar

Nuvilkite vertimo failą čia

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

arba spustelėkite norėdami pasirinkti

Tikslinės kalbos

Registruotis nereikiaMomentinis įvertis

Dažnai užduodami klausimai