See ekstraheeris 28 kasutajaliidese string’i kandidaati, kirjutas mitmes failis ümber 41 tõlkekirjet, seadistas middleware’i ja marsruutimise ning genereeris lokaalifailid viie sihtkeele jaoks. Seadistamine, teisendus ja tõlkimine võtsid algusest lõpuni umbes 90 minutit. globalize.now on AI-põhine lokaliseerimistaristu ja käivitasime selle tootmise monorepos, et näha, mis tegelikult juhtub. Ei mingit kureeritud demot. Ei mingit turvavõrku. Lihtsalt päris koodibaas päris keerukusega.
Koodibaas kuulus lokaliseerimisvaldkonna veteranile, kes töötas üle kümne aasta ühe juhtiva tõlkehaldussüsteemi arhitektina.
Mis monorepos sisaldus?
See ei olnud õppeprojekt. Monorepo sisaldas Next.js-i veebirakendust, Androidi rakendust, MCP-servereid ja kolmanda osapoole teenuse renderdatud dokumentatsiooni. Arendaja kasutab Claude Code’i iga päev, ehitab kogu lahenduse AI-tööriistade abil ja oli kogu tehnoloogiapinu kolme kuuga kokku pannud.
Sihtmärgiks oli Next.js-i frontend. Androidi rakendus, MCP-serverid ja Mintlifyl põhinev dokumentatsioonisait pidid puutumata jääma. Küsimus oli, kas AI-agent suudab sellest aru saada ilma otsese juhiseta.
Suudab küll. Agent skannis kogu hoidla ja keskendus Next.js-i rakendusele. Praktikas polnud käsitsi ulatuse määramine vajalik, kuigi arendaja märkis, et meelerahu huvides oleks ta soovinud võimalust öelda „teisenda ainult /apps/web“. See on õigustatud tähelepanek ja funktsioon, mida tasub lisada. Kuid teisendust see ei takistanud.
Kuidas konfiguratsioon toimis?
Arendaja valis juhendatud režiimi, et protsessist aru saada. Konfiguratsioon hõlmas viit otsust: paketihaldur (NPM, kuigi olemas oli ka pärandina PNPM-i lockfile), kataloogi vorming (PO/GetText, mida soovitatakse kommentaaride toe tõttu), seadistusrežiim (juhendatud), lähtekeel (inglise) ja sihtkeeled (hispaania, itaalia, ungari, tšehhi, slovaki).
Üks tähelepanek väärib märkimist: kataloogi vormingu küsimus tekitas kõhklusi isegi sügavate lokaliseerimisteadmistega inimeses. Tema reaktsioon oli otsekohene. Ta ei pidanud seda valikut piisavalt oluliseks, et kasutajalt selle kohta küsida. Automatiseerige see.
Marsruutimise strateegia põhines teekonnal. Domeenipõhist marsruutimist ei kasutatud, sest arendajale ei kuulunud täiendavaid domeene. Rakendus kasutab OAuth-põhist autentimist, mistõttu jäid sisselogimisvood disaini järgi ingliskeelseks. Agent käsitles seda õigesti.
Mida teisendusetapp tegelikult teeb?
See on oluline osa. Agent tuvastas Next.js-i rakenduses 28 võimalikku kasutajaliidese stringi ja töötles 41 tõlkekirjet. See korraldas failid ümber, uuendas middleware’i, muutis komponentide importimisi ja genereeris kõigi 5 sihtkeele jaoks PO-lokaalefailid.
Ainuüksi teisendusetapp võttis ligikaudu 30 minutit. Kui lisada sellele eelnev seadistamine ja konfigureerimine ning arendaja iseseisev tõlkeühenduse lõpuleviimine, kulus kogu protsessile algusest lõpuni pigem 90 minutit. See ei ole hetkeline. Võrdluseks: lihtsa rakenduse kogu töövoog, kus on vaid mõni leht, läbitakse alla 15 minutiga. Kümnete tõlgitavate vaadetega keerukas rakendus võtab kauem. Ajakulu kasvab stringide arvu, mitte hoidla suuruse järgi.
Arendaja jälgis teisendusetapi käivitumist ja ütles selle kohta järgmist: stringide eraldamine ja koodi ümberkirjutamine on kõige suurem töö. Just seda tööd arendajad kardavadki. Tema eelmises ettevõttes oli juhtiva TMS-i kasutamisel hoidlas olevate tõlkefailide näol tegu vaid jäämäe tipuga. Tegelik probleem oli ettevalmistus ja rahvusvahelistamine. AI-agent tegeles täpselt selle osaga.
See vastab sellele, mida kuuleme igalt arendajalt, kes on i18n-i käsitsi juurutanud. Keegi ei kurda tõlgete üle. Kurdetakse selle üle, et tuleb puudutada 40 faili, et stringid t()-kutsetesse mähkida, arusaadavad võtmed genereerida, impordid ümber struktureerida ja middleware konfigureerida. Just seda tööd globalize.now automatiseerib.
Kas see töötas tegelikult algusest lõpuni?
Jah. Pärast otseülekande lõppu viis arendaja ülejäänud sammud iseseisvalt lõpule. Ta avaldas globalize.now Git-haru, ühendas rakenduse veebiplatvormiga, seadistas jälgimise globalize.now harule ning kinnitas, et failid laaditi üles ja tõlgiti õigesti.
Tema hinnang tšehhi keele tõlkekvaliteedile: peaaegu täiuslik. Seda ütleb inimene, kes on kogu oma karjääri jooksul lokaliseerimisväljundit professionaalselt hinnanud. See ei ole üldsõnaline heakskiit. See on valdkonnaeksperdi kinnitus, et mittetriviaalse keelepaari kvaliteet sobib tootmiskasutuseks.
Pärast töövoo iseseisvat lõpuleviimist tõi ta veebirakenduses välja kaks probleemi. Esiteks näitas hoidla uuesti skannimine teadet „i18n-faile ei leitud”, kuigi tõlketöö tegelikult taustal käis. See oli eksitav kasutajaliidese olek, mitte päris tõrge. Teiseks käivitus tõlketöö ilma selgesõnalise nõusolekuta. Iga krediiti kuluva toimingu puhul peab olema nõutud kinnitus. Mõlemad on põhjendatud UX-i probleemid, millega tegeleme.
Mis läks valesti?
Asjad läksid katki. See oli päris test, seega räägime sellest ausalt.
Installikäsk (npx skills add globalize-now/globalize-skills) ebaõnnestus Windows PowerShellis. See oli esimene kord, kui tööriista Windowsis testiti. Pärast seda, kui Google e-kirja manuse blokeeris, tuli skills-fail saata zip-failina Swiss Transferi kaudu. Seadistamisele kulunud lisavaev: umbes 15 minutit enne tegeliku töövoo käivitumist.
Teisenduse keskel tuli ilmsiks ES-modulite ja CommonJS-i konflikt. Projekt kasutab CommonJS-i, kuid agendi väljund eeldas ühes kohas ES-moduleid. See ei olnud blokeeriv probleem, kuid seadistamise käigus tuleks see tuvastada ja ennetavalt lahendada.
Seansi lõpus andis GitHubi hoidla ühendamine globalize.now veebirakenduses tulemuseks tühja lehe. Arendaja kasutas Operat. Ei sisselogimisekraani, veateadet ega sisu. Seanss lõppes enne probleemi lahendamist.
Kolm viga. Kõik päris. Kõik kas parandatud või lahendamisel.
Miks on stringide eraldamine tegelik kitsaskoht?
Enamik i18n-i käsitlevast sisust keskendub tõlkekvaliteedile, raamistiku konfigureerimisele või TMS-ide funktsioonide võrdlemisele. See jätab tähelepanuta koha, kus arendajad tegelikult aega kaotavad.
Rahvusvahelistamise lisamine olemasolevale koodibaasile tähendab iga komponendi skannimist hardcoded stringide leidmiseks, otsustamist, millised stringid on tõlgitavad, tähenduslike tõlkevõtmete genereerimist, iga stringi mähkimist sobivasse t()- või <Trans>-kutsesse, importide uuendamist kogu failipuus, esialgsete lokaalefailide loomist ja marsruutimise middleware’i konfigureerimist. Monorepo puhul tuleb lisaks välja selgitada, millised koodibaasi osad üldse i18n-i vajavad.
See on tüütu, veaohtlik ja täpselt selline töö, milles AI-agendid head on. Arendaja, kes seda pealt nägi, sõnastas selle selgelt: arendaja vaatenurgast on see kõige suurem töö. See on suur kergendus. AI-tööriistadega vibe code’ivaid arendajaid ei pea rahvusvahelistumise kõige hullemat osa enam üldse läbi tegema.
Mida õppisime monorepo ulatuse määramise kohta?
Agent määras monorepo ulatuse vaikimisi õigesti. See keskendus Next.js-i veebirakendusele ning jättis Androidi koodi, MCP-serverid ja Mintlify dokumendid puutumata, ilma et talle oleks seda eraldi öeldud. Enamiku juhtude jaoks on see õige käitumine.
Kuid vaikimisi ulatuse määramine ei ole sama mis selgesõnaline ulatuse määramine. Arendaja soovis seadistusetapina võimalust öelda „teisenda ainult minu Next.js-i rakendus”. Mitme veebiliidesega monorepos – näiteks kliendirakenduse ja administraatori juhtpaneeli puhul – soovite täpselt kontrollida, milline kasutajaliides esimesena rahvusvahelistatakse.
See on tootearenduse puudujääk, mida me lahendame. Praegu saab agent praktikas õigesti hakkama. Selgesõnaline ulatuse määramine peaks olema seadistusetapp, eriti siis, kui teisendus puudutab kümneid faile.
Kuidas see võrdub i18n-i käsitsi seadistamisega?
Sellise keerukusega koodibaasi käsitsi i18n-i seadistamine võtab päevi. Mitte sellepärast, et mõni üksik samm oleks keeruline, vaid kuna samme on kümneid ja igaüks neist nõuab tähelepanu. Kui üks string jääb vahele, jõuab tootmisse poolikult tõlgitud leht. Kui võtme nimi läheb valesti, tekivad duplikaatkirjed, mis kummitavad teid kuid. Kui unustate middleware’i uuendada, lakkab lokaalne marsruutimine vaikselt töötamast.
AI-agent tegi samaväärse töö algusest lõpuni umbes 90 minutiga. Arendaja, kes on professionaalselt näinud tuhandeid i18n-i juurutusi, nimetas tulemust elegantseks.
AI-tööriistadega rakendusi ehitavate arendajate jaoks muudab see keelte lisamise ajastamise loogikat. Kui i18n-i seadistamine võtab nädala, lükkate selle edasi, kuni toote-turu sobivus on tõestatud. Kui selleks kulub 90 minutit, saate mitmekeelse toote turule tuua juba esimesest päevast.
globalize.now tegeleb sellega. Ühendage oma hoidla ja teisendus käivitatakse rakenduses ühe korra; sellele järgneva katavad teie redaktoris npx skills add globalize-now/globalize-skills skills-failid. Vaadake, kuidas see töötab: globalize.now.
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