Kui teie Lovable’i rakendus renderdatakse olenemata lisatud keelest alati inglise keeles, on põhjus tehnoloogiapinu muutuses: alates 2026. aasta mai keskpaigast tarnitakse uued Lovable’i projektid TanStack Starti ja serveripoolse renderdamisega, mitte vana Reacti ja Vite’i ühe lehe rakendusena. globalize.now sobitub selle uue tehnoloogiapinuga, eraldades teie stringid versioonihaldusesse lisatud Lingui PO-kataloogidesse, nii et õige keel renderdatakse serveris, mitte ei vahetata seda hiljem brauseris. Lahendus ei ole järjekordne vidin. Tõlge tuleb viia teie hoidlasse, kus server saab selle renderdada ja otsingumootorid indekseerida.
Miks muutus Lovable’i rakenduse lokaliseerimine järsku keerulisemaks?
Sest vana nõuande aluseks olnud pinnas nihkus. Enamik „tõlgi oma Lovable’i rakendus” juhendeid eeldab kliendipoolselt renderdatavat ühe lehe rakendust, kus vidin saab pärast laadimist DOM-i ümber kirjutada ja keegi ei pane seda tähele. Uute projektide puhul see eeldus enam ei kehti.
Lovable viis uued projektid üle TanStack Startile koos SSR-iga, et roomajad saaksid juba esimese päringu vastusena täielikult renderdatud HTML-i, ilma JavaScripti käivitamata. See on SEO jaoks tõeline võit, kuid muudab tõlkimise loogika vastupidiseks. Kui esimene vastus on juba renderdatud, on selle hiljem brauseris tõlkimiseks liiga hilja.
Kui ehitasite oma rakenduse viimase paari kuu jooksul ja lisasite käitusajal toimiva tõlkevidina, näete sümptomit: ingliskeelse sisu vilkumine ja seejärel vahetus. Lovable’i integratsioon globalize.now-ga on loodud just selle lahendamiseks õigel kihil.
Mis Lovable’i TanStack Startile üleminekul tegelikult muutus?
Renderdamismudel muutus kliendipoolsest serveripoolseks. Varem genereeris Lovable Reacti ja Vite’iga loodud ühe lehe rakendusi, mida juurutati staatiliste failidena ja renderdati täielikult brauseris. Nüüd on aluseks TanStack Start – täisstack’i Reacti raamistik, mis toetab marsruudipõhist SSR-i, SSG-d ja CSR-i ning komponentidega kõrvuti paiknevaid serverifunktsioone.
Lokaliseerimise jaoks on olulised kolm asja. Esiteks luuakse HTML serveris enne selle brauserisse jõudmist, seega otsustatakse keel serveri poolel. Teiseks toetab marsruutimine nüüd päris lokaalepõhiseid URL-e. Kolmandaks käivitub kõik, mis sõltub brauseripõhistest API-dest keele valimiseks, pärast seda, kui server on juba ühe keele kasuks otsustanud.
Just kolmandas punktis peitub enamik katkiseid seadistusi. localStorage-i salvestatud lokaal on serverile nähtamatu, mistõttu renderdab server vaikekeele ja klient parandab selle hetke pärast.
Miks näitavad käitusajal toimivad tõlkevidinad SSR-is korraks inglise keelt?
Sest need tõlgivad pärast seda, kui server on ingliskeelse sisu juba saatnud. Uuel tehnoloogiapinul toimub jada nii: server renderdab HTML-i vaikekeelega, brauser kuvab selle, seejärel laadib vidina JavaScripti ja kirjutab teksti ümber. Kuvamise ja ümberkirjutamise vaheline hetk ongi ingliskeelse sisu vilkumine ning nüüd on see struktuurne probleem, mitte häälestusküsimus.
SEO-kulu on vilkumisest veel suurem. Roomaja loeb esimese vastuse ja liigub edasi. Kui tõlgitud tekst ilmub alles pärast kliendipoolse JavaScripti käivitumist, indekseerib roomaja iga lokaali puhul ingliskeelse sisu ning teil pole järjestamiseks lokaalepõhiseid lehti. Kogu põhjus, miks Lovable SSR-ile ja indekseeritavale HTML-ile üle läks, muutub brauseris tõlkimisega olematuks.
Repoosse sisse commititud kataloogid väldivad seda juba oma ülesehituse poolest. Kui tõlkestringid asuvad teie hoidlas, renderdab TanStack Start serveris soovitud lokaadi, nii et esimene vastus on kohe õige. See ongi püsiv erinevus teie koodibaasis elava infrastruktuuri ja selle peale paigaldatud vidina vahel ning põhjus, miks Wegloti-sugused käitusaegsed tööriistad sobivad vana SPA-mudeliga paremini kui uuega. Sünkroonimisprobleemi põhjalikuma käsitluse leiate siit: miks Lovable’i tõlked iga push’i järel katki lähevad.
Kuidas muuta TanStack Starti Lovable’i rakendus mitmekeelseks?
Viige tõlkimine serverisse ja hoidke kataloogid oma hoidlas. Uues tehnoloogiapinus tähendab see konkreetselt nelja sammu ning ükski neist ei nõua lokaalifailide käsitsi muutmist.
- Lisage
lovable-i18noskus ja laske Lovable’il i18n seadistada. Lisage oma Lovable’i tööruumislovable-i18noskus ning paluge Lovable’il rahvusvahelistumine seadistada. See paigaldab Lingui, eraldab hardcoded UI strings sõnumikataloogidesse ja seadistab pakkuja. Väljaspool redaktorit paigaldatakse sama seadistus käsuganpx skills add globalize-now/globalize-skills(kõigi agentide jaoks paigaldamiseks lisage--all). - Suunake lokaadid TanStacki valikulise teekonnaparameetriga. TanStack Router kasutab valikuliste teekonnaparameetrite jaoks
{-$locale}, seega sobib määratlusega/{-$locale}/aboutmarsruut nii/about-ga vaikekeele kui ka/es/about-ga hispaania keele jaoks. Nii saab iga keel eraldi indekseeritava URL-i, mitte üht URL-i, mille tekst brauseris muutub. - Lahendage lokaat serveris, mitte
localStorage-s. Salvestage aktiivne keel küpsisesse, et SSR-i töötleja saaks selle päringust lugeda. Lingui puhul kutsub server enne ruuteri loomist väljasetupLocaleFromRequest()ning kliendi hüdratsioon kutsub enne renderdamist serveri edastatud lokaadiga väljadynamicActivate(). Sama väärtus mõlemal poolel tähendab, et hüdratsioonikonflikti ega vilkumist ei teki. - Hoidke kataloogid oma hoidlas ja sünkroonige need iga push’i järel. PO-kataloogid on commit’itud failid, mitte tarnija käitusaegne teenus. Kui jätkate Lovable’is arendamist ja lisanduvad uued stringid, tuleb need uuesti eraldada ja tõlkida – just see osa kipub käsitsi tehes aeguma. Seda teeb globalize.now automaatselt, nii et kataloogid püsivad ajakohased ilma käsitsi ekspordita.
// server: resolve locale before the router exists
const locale = getLocaleFromCookie(request) ?? "en";
await setupLocaleFromRequest(locale);
// client: activate the SAME locale before first render
await dynamicActivate(serverLocale);
Kuna tegemist on päriselt samm-sammult järgitava protseduuriga, mille väljund on commit’itud, käitub see nagu tavaline versioonihallatav kood: seda saab pull request’is üle vaadata, diff’ida ja vajaduse korral Lovable’ist lahkudes kaasa võtta.
Kus paikneb globalize.now TanStack Starti i18n-pinus?
See paikneb käitusaegse teegi ja tõlkemootori vahel. TanStack Start ja Lingui edastavad tõlked käitusajal, DeepL või LLM loob tõlked ise. globalize.now on nende vaheline infrastruktuur: see genereerib võtmed ja PO-kataloogid ning hoiab need sünkroonis, nii et käituskeskkonnal on alati midagi korrektset renderdada.
Lovable’i ehitaja jaoks tähendab see praktiliselt, et te ei pea enam lokaalifaile pidevalt jälgima. Paigaldate oskuse, annate Lovable’ile ühe korra juhise ning iga järgmine push eraldab uued stringid, täidab kataloogid ja avab muudatuse tavalise PR-ina. Pole edasi-tagasi liikumist juhtpaneeli ja rakenduse vahel, uut eksporti ega lahknevust rakenduse teksti ja kataloogide sisu vahel.
Hinnastus on üheplaaniline: 20 € kuus tööruumi kohta, sisaldades kuus 20 € väärtuses tõlkekrediiti (umbes 200 000 sõna), seejärel rakendub märgipõhine kasutustasu sama tähemärgihinna alusel. Istekoha- ega keelepõhiseid tasusid ei ole ning registreerumisel saate 5 € krediiti ja kaarti pole vaja. Tüüpiline viie lokaadiga Lovable’i rakendus mahub sellesse mugavalt. Arendajatele mõeldud detailid leiate lehtedelt globalize.now arendajatele ja vibe-kodeerijatele, ülejäänud tehnoloogiapinu tutvustab toote ülevaade.
Teie Lovable’i rakendus on inglise keeles kinni, sest tõlkimine toimub vales kohas – brauseris, pärast seda, kui server on keele juba määranud. Viige tõlked oma hoidlasse ja server renderdab juba esimesel päringul õige keele. globalize.now hoolitseb eraldamise ja sünkroonimise eest, nii et seadistate selle ühe korra ning see püsib iga push’i järel ajakohasena.
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