Kui teie hoidlas on next-intl, react-i18next, i18next või Lingui juba ühendatud – kettal olevad lokaalikaustad, sõltuvused package.json-is ning middleware’i- või konfiguratsioonifailid –, pole teil vaja veel üht tööriista, mis teeskleb, et alustate nullist. globalize.now on AI-põhine lokaliseerimisinfrastruktuur. L1-režiimis (juba rahvusvahelistatud) jätab toode hävitava algseadistuse vahele ja jääb sünkroonimisrežiimi: loeb teie lähtekeelt, võrdleb push’i järel teisi lokaale ning avab täidetud failidega pull request’id. Selles artiklis selgitame, mida see režiim muudab, mida see puutumata jätab ja mida teha, kui tuvastus eksib.

Miks eeldavad enamik i18n-juhiseid, et alustate nullist?

i18n-tööriistade turundustekstid kirjeldavad endiselt peamiselt greenfield-juhtumit: ühtki teeki pole installitud, lokaalifaile pole ja eraldamist pole tehtud. Enamik tootmiskoodibaase pole sellises seisus.

Viimastel nädalatel jõudsid meieni kolm omavahel seotud esmakasutuse juhtumit, millel oli sama muster: tiim proovis i18n-i korra, sai midagi poolikult tööle ja jäi seisma – sest selle eemaldamine ja uuesti tegemine tundus hullem kui segadusega edasi elamine.

Kui see kirjeldab teid, siis oletegi selle postituse sihtrühm.

Milline näeb poolikult rahvusvahelistatud koodibaas tegelikult välja?

Need mustrid korduvad ikka ja jälle (üksikasjad on anonümiseeritud):

  • Next.js-i ja next-intl-iga rakendus, kus enamik komponente kasutab t(), kuid vanemad marsruudid tarnivad endiselt hardcoded English teksti, sest esimene migratsioonilaine ei saanud kunagi valmis.
  • Reacti ja i18next-iga projekt, mille lokaalifailid on olemas, kuid sisaldavad ainult ingliskeelseid väärtusi – tõlkimine oli alati järgmise kvartali töö.
  • messages/-puu, kus en.json on täis ja es.json sisuliselt tühi.
  • Paigutusse ühendatud keelevalija, mis annab mõnikord 404, sest marsruutimine viidi üle ainult pooleldi.

Ükski neist projektidest ei vaja globalize.now’ga otsast alustamist. Neil on vaja töö lõpule viia.

L0 versus L1 setup pathA decision tree showing that when globalize.now detects existing i18n on first run, it skips four destructive setup steps and goes straight to translating missing keys.your repoDETECTIONfirst-run scan of package.json + repoNO i18n FOUNDL0 pathi18n DETECTEDL1 pathinstall libraryextract stringsgenerate locale filesinject switchertranslateinstall libraryextract stringsgenerate locale filesinject switchertranslateSKIPPEDPR on every push
Tuvastus jagab seadistusvoo harudeks. L0 läbib kõik viis sammu; L1 jätab neli vahele ja liigub otse sünkroonimise juurde.

Milliseid signaale globalize.now esimesel käivitusel otsib?

Tuvastus toimub kahes, mitte ühes etapis.

Esmalt suunake globalize.now hoidlale. Selle rakenduses ühendamine käivitab teie eest tuvastuse ja ühekordse teisenduse. Kui eelistate, et agent teeks selle sammu lokaalselt, installige skill’id – see lisab .claude/skills/-i mõned playbook-failid ega muuda teie hoidlas midagi muud:

npx skills add globalize-now/globalize-skills

Seejärel andke agentile juhis – Claude Code, Cursor või Codex. Agent loeb installitud skill’e ja kasutab neid teie hoidla skannimiseks:

Set up localization for my project

Just selles teises etapis tuvastus tegelikult toimub. Agent otsib järgmist:

  • package.json sõltuvused: next-intl, react-i18next, i18next, @lingui/core, @lingui/react, @lingui/macro või mõni i18next-* plugin.
  • Lokaalikaustad: messages/ hoidla juurtes, locales/ kaust või src/i18n/ koos lokaalide alamkaustadega.
  • Olemasolevad lokaalifailid: en.json, en.po, en.yml, en.yaml või vaikimisi lokaali fail, mida teie teek juba eeldab.
  • Raamistikupõhine konfiguratsioon: i18n.config.ts, next-intl-i middleware, lingui.config.js või samaväärsed lahendused.

Kui vähemalt kaks neist signaalidest on olemas, käsitletakse projekti L1-na – juba rahvusvahelistatuna – ning seadistusvoog hargneb, selle asemel et käivitada täielik greenfield-põhine põhistruktuur. Lisateavet leiate Help Centeri artiklist olemasoleva i18n-i kohta.

Mida L1-režiim keeldub muutmast?

See on osa, millest inimesed kõige rohkem hoolivad. L1-režiimis globalize.now ei:

  • käivita laiaulatuslikku stringide eraldamist, mis skannib komponente hardcoded literaalide leidmiseks.
  • genereeri uusi translation keys-võtmeid ega korralda ümber juba commit’itud võtmestruktuuri.
  • loo lokaalifaile keelte jaoks, mida te pole veel seadistanud.
  • lisa keelevalijat. Kui teil on see olemas, jääb see alles. Kui pole, siis me seda ei lisa.
  • kirjuta teie eest ümber marsruutimist, middleware’i ega raamistiku konfiguratsiooni.

Teie olemasolev i18n-seadistus jääb teie omaks. Selles režiimis me seda ümber ei refaktoreeri.

Mida teeb L1 sünkroonimisrežiim pärast tuvastamist?

L1 seab sünkroonimise esikohale. Kui tuvastus on lõppenud:

  1. loeme teie olemasolevaid lokaalifaile, et mõista praegust võtmestruktuuri ja seda, milline keel on tõeallikas.
  2. Ühendate GitHubi hoidla globalize.now CLI või veebirakenduse kaudu.
  3. Iga põhiharusse tehtud push’i järel võrdleme lähtekeele faili teiste lokaalidega. Puuduvad tõlked täidetakse AI-väljundiga, mis järgib teie seadistatud sõnastikku ja stiilijuhendit.
  4. Pull request saabub uuendatud lokaalifailidega. Te vaatate selle üle ja mergite. Me ei merge’i kunagi teie eest.

See ongi töövoog. Pole tõlkejuhtpaneeli, mida pidevalt jälgida. Pole käsitsi eksporti. Pole failivormingutega žongleerimist.

Võrrelge seda L0 juhendiga loos Kuidas lisada i18n Cursoriga loodud Next.js-i rakendusse 15 minutiga? – sama toode, erinev lähtepunkt.

Mis siis, kui ainult osa kasutajaliidesest kasutab tõlkekutseid?

See on tavapärane migratsiooni keskfaas: uued ekraanid kasutavad t(), vanad ekraanid lasevad literaalidel endiselt läbi. Väljaspool sünkroonimisrežiimi käsitleb skills-pipeline juba võtmetega seotud stringe lukustatuna: see keskendub literaalidele, mis pole veel ühendatud, ja säilitab olemasolevad võtmed. Tiimid, kes tarnivad igal nädalal migratsiooni poole peal, on meie logides tüüpiline „mixed L1“ kasutaja.

Täieliku agendipõhise teisendusloo kohta keeruka puuga vaadake Mis juhtub, kui AI-agent rahvusvahelistab päris monorepo?.

Mida teha, kui seadistusvoog lõi ikkagi kõik põhistruktuurid?

Täiustame tuvastusloogikat, et vale haru ei käivituks, kuid kui npx skills add globalize-now/globalize-skills on juba loonud 100+ failiga diff’i, mis kirjutab teie lokaalikausta ümber, lisab teie soovimata keelevalija või muudab marsruutimist – ärge commit’ige. Kasutage tagasisidevidinat (all paremal), lisades oma package.json sõltuvuste loendi ja lühikese kirjelduse lokaalikaustade ülesehitusest; saame hoidla käsitsi L1-režiimi suunata. Ise teenindatav --existing-i18n CLI-lipp on peagi saadaval.

Taastamine teie arvutis tähendab git restore . ja vajaduse korral git clean -fd. Midagi ei push’itud, tootmisega seotud miski ei läinud katki ning agent puudutas ainult teie lokaalset haru. Täielik ülevaade on loos globalize_skills tegi liiga palju muudatusi – mis juhtus?.

Miks on „proovisime i18n-i, aga jäime toppama“ nüüd vaikimisi lugu?

See ei ole loosung – see on muster. Kuue nädala jooksul toimus kolmel sõltumatul esmakontaktil kolm eri versiooni lausest „jah, me proovisime seda; nüüd on see üsna logisev“. Kümnete tuhandete kasutajatega Chrome’i laiendus sattus Korea liikluse hüppe alla ja käivitas pooleli jäänud next-intl-i migratsiooni. Lovable’iga loodud rakendus lõhkus mitmekeelse toe lisamisel oma build’i ja muudatus võeti tagasi. Vibe-kodeeritud Reacti + Vite’i hoidlas võeti i18next kasutusele, täideti ligikaudu kolmandik võtmetest ja töö jäi pooleli.

Täiesti puhas L0-koodibaas, mis otsib endale teeki, on täiesti olemas, kuid see ei ole pudelikael. Pudelikael on koodibaas, kus seda juba korra prooviti ja mille tagajärgi ei taha nüüd keegi enda kanda võtta.

L1-režiim on mõeldud just sellise koodibaasi jaoks.

Kui palju see maksab?

20 € kuus. Üks pakett. Hinna sees on ligikaudu 16 000 sõna – umbes 80 tüüpilise rakenduse ekraani jagu. Registreerumisel saate 5 € tõlkekrediiti. Olenemata sellest, kas olete L0 ja alustate nullist või olete L1 ning veate järel kolm aastat kogunenud lokaalivõlga, on hind sama – mõõdame läbilaskevõimet ja automatiseerimist, mitte seda, kui segane esimene commit oli.

Milliseid postitusi ja abikeskuse dokumente peaksin järgmisena lugema?

Avaldage keeled, mida teie liiklus juba ootab – ühendage hoidla globalize.now-iga või lugege, kuidas Git-push’i automatiseerimine sobitub olemasoleva tiimi töövooga.

globalize.now muudab rakenduse koodis olevad tekstid tõlkeks valmis lokaale failideks ja hoiab neid ajakohasena, kui sa uusi versioone välja lasid.

Proovi globalize.now tasuta