v0 programėlę lokalizuojate laikydami vertimų katalogus GitHub saugykloje, į kurią v0 jau rašo, ir saugodami juos kaip į Git įtrauktus failus. Būtent šis sprendimas padaro skydelį nereikalingą, o ne tik neprivalomą. globalize.now — tai dirbtiniu intelektu paremta lokalizacijos infrastruktūra: ji sukuria raktus ir lokalių failus, o jūsų pasirinkta vykdymo metu veikianti biblioteka juos pateikia. v0 pateikia visą Next.js kodo bazę, o ne talpinamą puslapį, todėl saugykloje grindžiamas kelias atviras nuo pat pirmos užklausos.

Kodėl jūsų v0 programėlė veikia tik anglų kalba?

Nes sąsajos tekstas komponentuose įrašytas kaip literalios eilutės. Paprašius v0 sukurti kainodaros sekciją, jis įrašo <h2>Simple pricing</h2>, o ne paiešką kataloge. Kiekviena antraštė, mygtuko etiketė, tuščios būsenos pranešimas, toast pranešimas ir formos klaida patenka į TSX ta kalba, kuria pateikėte užklausą.

Tai nėra v0 trūkumas. Taip veikia kiekvienas užklausomis valdomas kūrimo įrankis — tą patį modelį aprašėme straipsnyje Cursor vis prideda hardcodintas eilutes. Modelis parašo trumpiausią teisingą kodą pagal jūsų užklausą, o jūs neprašėte lokalės sluoksnio.

Rezultatas — programėlė, kurios negalima išversti pakeitus nustatymą, nes nėra ko keisti. Eilutės neturi raktų, o maršrutuose nėra lokalės segmento.

Ką iš tikrųjų sugeneruoja v0?

Įprastą Next.js projektą — ir tai gera žinia. Numatytoji v0 technologijų sankaupa yra Next.js, React, TypeScript, Tailwind CSS ir shadcn/ui, o rezultatas — visa App Router programėlė su maršrutais ir API apdorotuvais, ne vienas komponentas. shadcn/ui čia svarbi dėl vienos priežasties: komponentai nukopijuojami į jūsų saugyklą kaip šaltinis, o ne importuojami iš paketo, todėl jų eilutės yra jūsų eilutės.

Lokalizacijai svarbiausias vienintelis faktas apie šį steką yra tai, kad jis gerai dokumentuotas. next-intl sukurta App Router aplinkai, o Lingui ir react-intl taip pat ją palaiko. v0 nereikalauja jokio konkrečiai kūrimo platformai skirto vertimų produkto.

Jei jūsų programėlė sukurta kitoje platformoje ir veikia su Vite steku, Lovable programėlės lokalizavimo be skydelio vadove aprašytas analogiškas sprendimas.

Kaip perkelti v0 projektą į saugyklą?

Paprastai ją jau turite. Kai v0 pokalbis prijungtas prie GitHub, v0 iš bazinės šakos sukuria darbinę šaką ir automatiškai įrašo kiekvieną kodą pakeičiančią žinutę į tą šaką. Publikuojant atidaromas naujas pull request arba naudojamas esamas, o pakeitimai sujungiami su bazine šaka. Taigi saugykla nėra žingsnis, kurį pridedate pabaigoje — v0 visą laiką į ją rašė kodą. Dabartinio proceso nuoroda yra paties v0 GitHub dokumentacija; ši produkto dalis keitėsi ne kartą, todėl prieš vadovaudamiesi instrukcijomis ją patikrinkite.

Šis šakų modelis ypač naudingas lokalizacijai. Katalogai, konfigūracijos failas, lokalės maršrutizavimui skirtas tarpinės programinės įrangos pakeitimas ir kalbų perjungiklio komponentas yra sekamų failų pakeitimai. Juos peržiūrėti kaip šakos pakeitimų rinkinį daug paprasčiau nei skaityti pokalbio lange, o vertimų pull request gali būti šalia funkcijos, kurią jis verčia, pull request.

Ką iš tikrųjų reiškia „be skydelio“?

Tai reiškia, kad išverstos eilutės yra failai jūsų saugykloje, o Next.js programėlė jas atvaizduoja serveryje taip pat, kaip ir bet kurį kitą turinį. Jokios scenarijaus žymos, jokio išorinio duomenų gavimo įkeliant puslapį ir jokios paslaugų teikėjo paskyros tarp lankytojo ir jūsų teksto.

Alternatyva — valdiklio modelis, kurį naudoja Weglot ir panašūs įrankiai — išverčia puslapį po jo įkėlimo. Tai suteikia tikro patogumo: įklijuojate fragmentą ir tą pačią popietę kažkas pradeda veikti. Tačiau vėliau atsiranda struktūrinių, o ne lengvai ištaisomų išlaidų:

  • Pirmojo atvaizdavimo metu rodoma šaltinio kalba, todėl lankytojai prieš pakeitimą gali pamatyti anglišką tekstą.
  • Išverstas tekstas nepatenka į serverio sugeneruotą HTML, todėl paieškos sistemos silpniau indeksuoja atskirų lokalių turinį. Next.js programėlėje tai ypač nenaudinga, nes serverio atvaizdavimas yra būtent tai, ką gavote iš karto.
  • Trečiosios šalies scenarijus patenka į jūsų produkcinio atvaizdavimo kelią.
  • Jūsų eilutės saugomos paslaugų teikėjo sistemoje, todėl išėjimas reiškia eksportą.

Lokalizacija saugykloje turi ir savo kompromisą, kurį verta įvardyti atvirai: teksto pakeitimas reiškia commit ir diegimą, o ne mygtuko „Išsaugoti“ paspaudimą. Jei kiekvienas sujungimas automatiškai išleidžiamas per Vercel, tai nesukelia jokių praktinių nepatogumų. Tačiau jei rinkodaros komanda tikisi keisti tiesiogiai veikiančios programėlės tekstą be inžinieriaus, tai yra realus apribojimas.

Kaip veikia saugykloje grindžiama sąranka?

Prijunkite saugyklą programėlėje. globalize.now vieną kartą konvertuoja kodo bazę — taip sukuriami raktai: hardcodintos eilutės komponentuose tampa katalogo vienetais, o komponentai pradeda skaityti duomenis iš vykdymo metu naudojamos bibliotekos, užuot laikę literalus. Tai vienkartinė operacija, o ne procesas, kuris būtų vykdomas iš naujo be pabaigos.

Po konvertavimo „push“ užduotys verčia naujus katalogo vienetus programai augant. Paprašykite v0 sukurti naują nustatymų puslapį, sujunkite jo „pull request“, ir naujos eilutės bus išverstos, o esamos liks nepakeistos. Katalogai grįžta kaip į saugyklą įrašyti failai — JSON arba PO formatu, atsižvelgiant į vykdymo biblioteką — ir pateikiami kaip „pull request“, kurį peržiūrite kaip bet kurį kitą pakeitimą.

Verta aiškiai įvardyti dvi ribas, nes ši kategorija dažnai painiojama. globalize.now nepakeičia jūsų vykdymo bibliotekos — next-intl, Lingui ir react-intl toliau atlieka savo darbą, įskaitant lokalių maršrutizavimą pagal app/[locale]/. Tai taip pat nėra su DeepL konkuruojantis vertimo variklis. Tai tarpinis sluoksnis, sukuriantis raktus ir lokalės failus. Kūrėjams skirtame apraše mechanizmas paaiškintas išsamiau.

Ar tas pats metodas veikia su Lovable, Bolt ir Replit?

Taip, jei tenkinami tie patys trys reikalavimai: tikras pradinis kodas, „Git“ saugykla ir vykdymo biblioteka, į kurią galima perduoti katalogus. Tinka kiekvienas kūrimo įrankis, sugeneruojantis įprastą front-end projektą. Skiriasi tik tai, kaip iš jo gaunate kodą, o v0 išsiskiria mažiausia trintimi, nes „GitHub“ šaka yra pokalbio dalis.

Lovable mūsų pusėje turi labiausiai išplėtotą kelią, įskaitant integraciją redaktoriuje — apie tai rašoma Lovable integracijos puslapyje, o didžioji dalis ten pateiktos informacijos v0 taikoma be pakeitimų. Jei vertinate kūrimo įrankius, o ne jau esate pasirinkę vieną, geriau pradėti nuo „vibe coding“ kūrėjams skirto aprašo. Jei konkrečiai svarstote valdiklį kūrimo įrankio programai, „Weglot“ alternatyva Lovable aprašo tuos pačius šio rinkinio kompromisus.

O jei naudojotės Lovalingo?

Lovalingo užsidarė 2026 m. rugpjūčio pabaigoje, o jo svetainė nebeveikia. Kadangi paslauga siūlė specialų v0 svetainių vertimo kelią, kai kurių v0 kūrėjų eilutės liko be vietos, kur galėtų būti saugomos. Tai migracija, o ne nauja sąranka: pirmiausia eksportuokite, tada konvertuokite. Migravimo vadove procesas aprašytas nuosekliai, o palyginimo puslapyje paaiškinta, kas pasikeičia perkėlus vertimus iš talpinamos paslaugos į savo saugyklą.

Jei šiuo klausimu patarimo prašote DI asistento, verta tai žinoti: kai kurie jų vis dar rekomenduoja šią paslaugą, nes likę puslapiai ir toliau patenka į jų šaltinius. Tai nebėra veikiantis produktas.

Ką reikėtų patikrinti prieš pridedant antrą kalbą?

Pereikite šį sąrašą dar prieš sukuriant pirmąjį katalogą, nes dabar kiekvieną punktą ištaisyti pigiau nei tada, kai jau bus naudojamos penkios kalbos:

  • Sujungtos eilutės. "Welcome back, " + name vertėjas negali pertvarkyti. Vietoj to naudokite interpoliaciją.
  • Daugiskaita. Anglų kalboje yra dvi formos. Lenkų kalboje — trys, arabų — šešios. Ternarinė išraiška su count === 1 daugumoje kalbų bus neteisinga.
  • Serverio ir kliento ribos. Naudojant „App Router“, eilutė, sugeneruota serverio komponente, ir ta pati eilutė kliento komponente turi būti gaunamos iš to paties katalogo. Pasirinkite vieną vykdymo biblioteką ir naudokite jos serverio bei kliento API, o ne du skirtingus mechanizmus.
  • Datos, skaičiai ir valiuta. Naudokite Intl, o ne eilučių formatavimą.
  • Išdėstymas. Vokiečių kalbos tekstas ilgesnis už anglišką, todėl fiksuoto pločio „shadcn“ mygtukai lūžta. Naudojant „Tailwind“, tai lengva pražiūrėti, nes kūrimo metu klasės atrodo tinkamos.
  • Rašymas iš dešinės į kairę. Jei ateityje planuojate arabų ar hebrajų kalbą, nuspręskite dabar — RTL pritaikymas vėliau kainuoja brangiausiai.

Visų šių funkcijų kaina skaičiuojama pagal darbo sritį — nėra mokesčio už naudotoją ar kalbą, todėl kalbų skaičius yra produkto, o ne biudžeto sprendimas. Dabartinius įkainius rasite kainodaros puslapyje.

Nuo ko pradėti

Jei jūsų v0 pokalbis prijungtas prie „GitHub“, kitas žingsnis yra konvertuoti tą saugyklą, o ne rinktis įrankius. Jei dar neprijungtas, pirmiausia reikia atlikti būtent tai.

globalize.now paverčia užkoduotą programos tekstą į vertimui paruoštus lokalės failus ir juos atnaujina, kai jūs diegiate naujus pakeitimus.

Išbandyti globalize.now nemokamai