Jūs padarāt Replit aplikāciju daudzvalodīgu, savienojot tās Git repozitoriju ar GitHub un glabājot tulkojumu katalogus šajā repozitorijā kā veiktus failus. Replit jau glabā katru Aģenta kontrolpunktu kā Git commit, tāpēc repozitorijs eksistē pirms jūs pat sākat domāt par valodām; darbs ir to nogādāt uz GitHub un ļaut katalogiem atgriezties caur to pašu vēsturi. globalize.now ir AI vadīta lokalizācijas infrastruktūra: tā izveido atslēgas un lokalizācijas failus, un izpildlaika bibliotēka, ko jūsu aplikācija jau izmanto, tos apkalpo. Izpildlaika ceļā nav informācijas paneļa, un nekas nepārtulko lapu pēc tās ielādes.
Kāpēc lūgums Aģentam iztulkot aplikāciju nedarbojas?
Tāpēc, ka nav nekā, kur tulkot. Kad jūs lūdzat Replit Agent izveidot informācijas paneli, tas ieraksta <h2>Your bookings</h2> komponentā, ne meklēšanu (lookup) katalogā. Katrs virsraksts, poga, tukšais stāvoklis, paziņojums (toast) un validācijas kļūda nonāk JSX kā burtisks teksts tajā valodā, kādā tika formulēts uzdevums.
Tāpēc, kad vēlāk lūdzat Aģentam "iztulkot aplikāciju afrikandu valodā", saņemat vienu no divām nepilnīgām atbildēm: otru komponentu kopiju ar nomainītu tekstu vai ar roku rakstītu translations objektu, kas aptver ekrānus, kurus Aģents apskatīja. Nekas no tā nav lokalizācijas slānis. Nākamā funkcija atkal parādās angļu valodā. Tādu pašu atkārtošanos aprakstījām rakstā Cursor turpina pievienot burtiskus tekstus; Replit Agent uzvedas tieši tāpat, jo tas risina konkrēto uzdevumu, ne arhitektūru, kas ir tā pamatā.
Risinājums ir strukturāls: piešķiriet tekstiem atslēgas, ievietojiet tulkojumus failos un panāciet, lai izpildlaiks tos lasa no failiem. Tas kodā nozīmē "daudzvalodīgs", un tā ir vienreizēja izmaiņa.
Ko Replit Agent patiesībā izveido?
Parastu tīmekļa projektu, un tas ir labas ziņas. Replit kuratētie aplikāciju tipi ir veidoti uz React ar ShadCN UI priekšgalā, parasti ar Express serveri tajā pašā projektā, viss TypeScript. Sākot no 2025. gada septembra, Aģents strādā arī ar jebkuru citu ietvaru, ieskaitot importētus GitHub repozitorijus, tāpēc iespējams izveidot Next.js vai Vue projektu; noklusējuma ceļš tomēr paliek React tehnoloģiju kopa.
Lokalizācijai svarīgs ir tikai tehnoloģiju kopas fakts, un tas ir standarta pamats. React kopā ar Vite un TypeScript ir visvairāk atbalstītā kombinācija i18n ekosistēmā: i18next, Lingui un react-intl visi ir vērsti tieši uz to. Ja Aģents jums izveidoja Next.js aplikāciju, izvēle ir starp next-intl, react-i18next un Lingui, un tas salīdzinājums ir atsevišķs raksts.
Kas atšķiras no vienkārša frontend veidotāja, ir projekta otra puse. Replit aplikācijai parasti ir serveris, un serveriem arī ir teksti. Vairāk par to tālāk.
Kur atrodas Git repozitorijs Replit aplikācijā?
Tas jau ir tur. Replit versiju kontrole zemāk balstās uz Git, un Aģenta kontrolpunkti ir commits šajā repozitorijā. Katru reizi, kad Aģents pabeidz funkciju un piedāvā atgriešanās punktu, tas ir veicis commit. Replit pati savā dokumentācijā iesaka pāriet uz parastiem Git commits ilgtermiņa uzskaitei, kad strādājat ar ārējiem repozitorijiem, un tieši šī situācija tā ir.
Lai nogādātu to uz GitHub:
- Pievienojiet Git rīku no projekta redaktora sadaļas Tools.
- Savienojiet savu GitHub kontu sadaļā connected services, tad savienojiet repozitoriju no Git paneļa. Ja projekts nekad nav bijis inicializēts, panelis piedāvās to izdarīt vispirms.
- Veiciet push. Panelis to veic ar vienu klikšķi, un tas paliek sinhronizēts ar visu, ko izpildāt Shell, tāpēc arī
git push origin maindarbojas.
Replit atbalsta arī GitLab un Bitbucket, un darbojas tā pati plūsma. Būtiskais nav pakalpojuma sniedzējs; būtiskais ir tas, ka repozitorijs tagad atrodas vietā, kur lokalizācijas uzdevums var atvērt pull request pret to.
Izdariet šo, pirms pieskaraties kaut vienam tekstam. Lokalizācijas darbs ir failu darbs, un diff ir pareizā vieta, kur to pārbaudīt.
Ko Replit aplikācijai nozīmē "bez informācijas paneļa"?
Tas nozīmē, ka iztulkotie teksti ir faili repozitorijā, un aplikācija tos apkalpo tāpat kā jebkuru citu resursu. Nav script taga, nav ārējas ielādes lapas ielādes brīdī, nav pakalpojuma sniedzēja konta starp apmeklētāju un jūsu tekstu.
Alternatīva ir izpildlaika rīks (widget), kas nomaina tekstu pēc lapas atveidošanas. Tā izmaksas ir strukturālas: pirmā atveidošana ir angļu valodā, iztulkotais teksts nav HTML kodā, ko robots (crawler) lasa vispirms, trešās puses skripts atrodas jūsu produkcijas vidē, un jūsu teksti glabājas pakalpojuma sniedzēja krātuvē, tāpēc pāreja prasa eksportu. Lovable versija šim argumentam ir rakstā Lokalizējiet Lovable aplikāciju bez informācijas paneļa, un tas pilnībā attiecas arī uz Replit.
Ir viens Replit-specifisks iemesls, kāpēc šeit tas ir svarīgāks. Replit izvieto (deploy) aplikāciju jūsu vietā, tāpēc darbojošā kopija jūsu Replit domēnā ir tā, kas projektā ir izvietošanas brīdī. Rīks (widget) šo izvietojumu tulkotu no ārpuses. Katalogi repozitorijā nozīmē, ka izvietojums jau satur visas valodas, un Replit priekšskatījums parāda vācu valodas versiju, pirms to publicējat.
Kompromiss ir reāls, un tas ir jāpiemin: teksta izmaiņa nozīmē commit un jaunu izvietošanu, ne saglabāšanas pogu. Vienam izstrādātājam, kas veido no Replit, tas nav nekāda problēma; kādam, kas gaida iespēju redigēt tiešraides tekstu, neaiztiekot projektu, tas ir ierobežojums.
Kā darbojas repozitorija natīvā uzstādīšana?
Savienojiet repozitoriju globalize.now lietotnē. Konvertēšana notiek vienu reizi visam kodam: burtiskie teksti kļūst par kataloga vienībām ar atslēgām, un komponentes sāk nolasīt datus no izpildlaika bibliotēkas, nevis satur tos burtiski. Šī ir vienreizēja darbība, nevis kaut kas, kas atkārtojas vēlāk.
Pēc konvertēšanas nosūtīšanas uzdevumi tulko jaunās kataloga vienības, lietotnei augot. Palūdziet Agent izveidot jaunu iestatījumu lapu, veiciet push, un jaunās vienības tiks iztulkotas — esošās paliks nemainītas. Katalogi atgriežas kā iecommitoti faili — JSON vai PO, atkarībā no izpildlaika bibliotēkas — pull request veidā, ko varat pārskatīt tāpat kā jebkuras citas izmaiņas.
Divas robežas, jo kategorija ir neskaidra. globalize.now neaizstāj izpildlaika bibliotēku — i18next, Lingui un next-intl turpina veikt savu darbu. Tā arī nav tulkošanas dzinēja, kas konkurētu ar DeepL. Tas ir starpslānis, kas ģenerē atslēgas un lokalizācijas failus. Izstrādātāja pārskatā ir aprakstīta tehniskā puse.
Kā tulkojumi nonāk atpakaļ Replit?
Caur to pašu Git paneli, tikai pretējā virzienā. Šis ir solis, kas atšķiras no Bolt vai Lovable, jo Replit ir arī vieta, kur lietotne darbojas.
- Pārskatiet un apvienojiet (merge) pull request GitHub vidē.
- Replit Git panelī izvēlieties Pull. Ja jūs vai Agent starplaikā mainījāt tos pašus failus, panelis izceļ konfliktus, un jums tie jāatrisina redaktorā pirms apvienošanas pabeigšanas.
- Izvietojiet lietotni no jauna (redeploy). Katalogi tagad ir daļa no projekta, tāpēc izvietošana ietver visas valodas.
Viens brīdinājums, kas raksturīgs tieši Replit: Agent kontrolpunkti atjauno visu projekta stāvokli, ieskaitot failus. Ja atgriezīsieties kontrolpunktā, kas izveidots pirms tulkojumu zara pievilkšanas, katalogi pazudīs līdz ar to. Uztveriet apvienošanu kā atskaites punktu — ļaujiet Agent pēc tam izveidot kontrolpunktu, un atgriezieties tieši pie tā, nevis pie kāda agrāka.
Kuri teksti atrodas serverī?
Tie, kurus priekšgals (front end) nekad neredz kā JSX. Replit lietotnei ar Express aizmuguri ir otra tekstu virsma: API kļūdu ziņojumi, validācijas atbildes, e-pasta temati, paziņojumu saturs, CSV galvenes — viss, ko serveris formatē, pirms to nosūta. Priekšgala katalogs tos nesasniedz, un logrīks (widget) tos nemaz nevar redzēt, jo tie nekad neparādās DOM struktūrā.
Modelis ir tāds pats kā klientā, tikai piemērots servera pusē. Nodrošiniet serverim izpildlaika bibliotēkas kopiju, nolasiet apmeklētāja lokāli no pieprasījuma (Accept-Language galvene vai lokāles lauks lietotāja ierakstā) un formatējiet atbildes no kataloga, nevis no burtiskiem tekstiem. Atslēgu vārdtelpa paliek kopīga, tāpēc errors.booking.overlap nozīmē vienu un to pašu gan paziņojumā, gan 409 atbildē.
Ja to izlaidīsiet, lietotne izskatīsies daudzvalodīga līdz pirmajai kļūdai — tad tā sāks runāt angliski.
Kas jāpārbauda, pirms pievienot otro valodu?
Izejiet cauri šim sarakstam pirms konvertēšanas, jo katru punktu ir lētāk salabot tagad, nevis pēc tam, kad projektā jau iesaistītas piecas valodas:
- Sakonkatenēti teksti.
"Welcome back, " + user.nametulkotājs nevar pārkārtot. Tā vietā izmantojiet interpolāciju. - Daudzskaitļa formas. Angļu valodā ir divas formas; poļu valodā — trīs, arābu valodā — sešas. Ternārais izteiksmes veids ar
count === 1vairumā valodu ir nepareizs. - Datumi, skaitļi un valūta. Izmantojiet
Intl, nevis teksta formatēšanu, gan klienta, gan servera pusē. - Izkārtojums. Vācu un somu valodas teksts ir garāks nekā angļu. Fiksēta platuma pogas salūzt, un Tailwind klases izskatās labi tikai līdz brīdim, kad ienāk īstais teksts.
- No labās uz kreiso pusi (RTL). Ja plānos ir arābu vai ivrita valoda, izlemiet to jau tagad. RTL pielāgošana vēlāk izmaksā dārgi.
- Katalogu neatbilstība. Kad katalogi jau eksistē, atslēga, kas pievienota vienā lokālē, bet ne pārējās, ir klusa kļūda. Kāpēc tulkojumu faili izkļūst no sinhronizācijas apraksta, kā tas notiek un ko ar to dara nosūtīšanas (push) uzdevums.
Cenas tiek noteiktas par darbvietu, bez maksas par lietotāju un bez maksas par valodu, tāpēc valodu skaits ir produkta lēmums, nevis budžeta rinda. Aktuālās cenas ir pieejamas cenu lapā. To pašu ceļvedi citiem rīkiem skatiet vibe kodētāju pārskatā — tas ir labs sākumpunkts.
No kā sākt
Ja jūsu Replit projekts jau ir savienots ar GitHub, nākamais solis ir konvertēšana pret šo repozitoriju, nevis lēmums par rīku izvēli. Ja tas vēl nav savienots, Git panelis ir solis pirms tam.
globalize.now pārvērš burtiski ierakstītus lietotnes tekstus tulkošanai gatavos lokalizācijas failos un pastāvīgi tos atjaunina līdz ar katru jauno versiju.
Izmēģiniet globalize.now bez maksas