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.
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.
/i18n-review src/
/i18n-review src/ --framework=next-intlKą 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ų
/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.
/i18n-wrap src/components/
/i18n-wrap src/ --framework=react-i18nextKą 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
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.
| Sistema | Vertimo funkcija | Daugiskaitos formatas |
|---|---|---|
| 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 |
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.
mkdir -p .claude/commands
cp commands/i18n-review.md .claude/commands/
cp commands/i18n-wrap.md .claude/commands/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ą.
# 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 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().
# 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 updatedIšbandykite i18n Agent dabar
Nuvilkite vertimo failą čia
JSON, YAML, PO, XML, CSV, Markdown, Properties
arba spustelėkite norėdami pasirinkti
Tikslinės kalbos