Lovable lasa i18n noteikumus no trim vietām: darbvietas un projekta knowledge, kas vienmēr atrodas kontekstā; skills, kas tiek ielādēti tikai tad, kad uzvedne atbilst to aprakstam; un pieslēgtā repozitorija instrukciju failiem, kur saknes AGENTS.md fails tiek nolasīts neatkarīgi no tā, cik ilgi turpinās saruna. Ja noteikumus ieliekat nepareizajā vietā, pagājušajā nedēļā iztulkotā lietotne nākamo funkciju izlaidīs angļu valodā. globalize.now ir ar mākslīgo intelektu darbināta lokalizācijas infrastruktūra, tāpēc šīs kļūdas sekas mēs redzam daudzos Lovable repozitorijos; risinājums lielākoties ir zināt, kura virsma tiek nolasīta kad.

Kāpēc iztulkota Lovable lietotne noslīd atpakaļ angļu valodā?

Tāpēc, ka instrukcija, kas lietotni padarīja daudzvalodu, nebija aģenta redzeslokā, kad tas rakstīja nākamo komponentu. Lovable risina to uzvedni, kas ir uz ekrāna. Ja šī uzvedne saka “pievieno atsauksmju sadaļu”, bet kontekstā nekas neliecina, ka “katrs lietotājam redzamais teksts jāvada caur <Trans>”, virsraksts nonāks kā burtisks teksts, tieši tāpat kā jaunā projektā.

Šī nav tā pati problēma, kad katalogi atpaliek no koda, — tā ir sinhronizācijas kļūme, kas aprakstīta rakstā kāpēc jūsu Lovable lietotnes tulkojumi salūst katru reizi, kad izlaižat jaunu versiju. Sinhronizācija pārnes ietītos tekstus uz lokalizācijas failiem. Tā nevar pārnest tekstu, kas nekad nav ticis ietīts. Sākotnējais jautājums ir tas, ko Lovable lasīja brīdī, kad rakstīja kodu, un Lovable dokumentācija par to ir neparasti konkrēta.

Ko Lovable patiesībā nolasa pirms izmaiņu veikšanas?

Saskaņā ar tā knowledge dokumentāciju aģentu līdztekus projekta kodam vada projekta knowledge, darbvietas knowledge un Git repozitorijā esošie instrukciju faili, piemēram, AGENTS.md vai CLAUDE.md. Skills ir atsevišķi un tiek ielādēti pēc pieprasījuma.

Tie atšķiras trīs veidos, kas i18n kontekstā ir svarīgi.

Kad tie tiek nolasīti. Knowledge tiek iekļauts katrā ziņojumā. Skill tiek iekļauts tikai tad, ja pieprasījums atbilst tā aprakstam. Saknes AGENTS.md, Lovable vārdiem sakot, tiek nolasīts vienmēr, neatkarīgi no sesijas garuma.

Cik noturīgi tie ir garā tērzēšanā. Lovable dokumentācijā ir skaidrs brīdinājums, ka ļoti garās sarunās ar lielu konteksta apjomu knowledge instrukcijas ne vienmēr var tikt izpildītas konsekventi. Tajā pašā lapā par saknes AGENTS.md ir apgalvots pretējais. Šī asimetrija ir visa šī raksta pamatiemesls.

Kas tos var rediģēt. Darbvietas knowledge var rediģēt tikai īpašnieks un administratori. Projekta knowledge var rediģēt ikviens, kam projektā ir rediģēšanas tiesības. Repozitorija failu rediģē ikviens, kas var veikt push, tostarp pats Lovable aģents.

Katrs knowledge līmenis ietver līdz 10 000 rakstzīmju. Tas ir vairāk nekā pietiekami norādei, bet pārāk maz pilnam noteikumu kopumam, ja tur vēlaties ievietot arī arhitektūras piezīmes, datubāzes shēmu un zīmola balsi.

Kur tad likt i18n noteikumus?

Repozitorijā, ar īsu norādi knowledge sadaļā. Pamatojums izriet no iepriekšējā tabulā redzamā.

AGENTS.md repozitorija saknē satur pilnos noteikumus. Tas tiek nolasīts katrā ziņojumā neatkarīgi no sesijas garuma, tas atrodas Git, tāpēc saglabājas jaunā tērzēšanā, pie jauna līdzstrādnieka un pārejot uz citu aģentu, un tam nav rakstzīmju ierobežojuma, kas konkurētu ar pārējo projekta kontekstu. Kad lovable-i18n skill veic iestatīšanu, tā trešā fāze ieraksta tieši šo failu: Lingui noteikumu bloku starp <!-- lovable-i18n:rules:start --> un <!-- lovable-i18n:rules:end --> marķieriem — izveidots, ja fails nav, pievienots, ja tas jau pastāv, un aizstāts starp marķieriem atkārtotas palaišanas laikā, lai nekas netiktu dublēts.

Projekta knowledge satur divu rindu norādi. Kaut kas šāds:

Localization
- This app is localized with Lingui. Every user-visible string is wrapped
  (<Trans>, t``, msg``) and new strings are appended to src/locales/*/messages.po.
- The full rules are in AGENTS.md at the repo root. Follow them on every edit.

Norāde ir paredzēta gadījumam, par kuru brīdina dokumentācija. Ja gara saruna ir vājinājusi zināšanu bloku, aģentam tomēr ir repozitorija fails; ja kāda iemesla dēļ repozitorija fails nav kontekstā, norāde nosauc ierobežojumu. Divas vietas, viens noteikums.

Darbvietas knowledge tikai tad, ja visi projekti izmanto vienu bibliotēku. Darbvietas knowledge attiecas uz visiem darbvietas projektiem, un tas ir tieši viens. Ja puse jūsu projektu izmanto Lingui, bet otra puse kaut ko citu, Lingui noteikums darbvietas līmenī ir nepareizs pusei no tiem, un konflikta gadījumā Lovable tāpat tiek mudināts dot priekšroku projekta knowledge. Darbvietas knowledge paturiet noteikumiem, kas ir patiesi visur: pogu nosaukumi ar sākuma lielo burtu teikuma stilā, bez console.log, koda komentāri angļu valodā.

Skill nav noteikumu mājvieta. Tas pārsteidz cilvēkus, kas to tikko importējuši. Skill tiek ielādēts, kad uzvedne atbilst tā aprakstam, tāpēc lovable-i18n ir kontekstā, kad lūdzat i18n iestatīšanu, un nav kontekstā, kad lūdzat norēķinu lapu. Tas ir apzināti; skill, kas tiktu ielādēts katrā ziņojumā, būtu vienkārši knowledge. Skill uzdevums ir vienreiz ierakstīt noturīgos noteikumus repozitorijā un tad nestāvēt ceļā.

Ko saka noteikumi AGENTS.md?

Tie atbild uz jautājumiem, kuros aģents kļūdās, ja tam tikai pasaka “izmanto i18n”. Skill ierakstītajam blokam ir seši posmi.

Kuru makro izmantot. Lēmumu saraksts: teksts, kas mainās atkarībā no skaitļa, izmanto <Plural> vai ICU daudzskaitļa formu; JSX teksts izmanto <Trans>; atribūtu vērtības un notikumu apstrādātāju teksti, piemēram, toast paziņojumi, izmanto t, ko atgriež useLingui(); moduļa līmeņa konstantes izmanto msg un tiek atrisinātas komponenta iekšienē. Noteikums norāda arī to, no kura importa ceļa katrs nāk, jo nepareizs t imports piesaista globālu instanci, ko lietotne nekad neielādē.

Interpolācija. Tikai tīrs mainīgais nosauc savu vietturi izgūtajā ziņojumā. Jebkura cita izteiksme tiek izgūta kā {0}, ar ko tulkotājs nevar strādāt, tāpēc noteikums pieprasa izmantot ph(), lai to nosauktu.

Daudzskaitļa formas. other ir vienmēr obligāts, kategorijas ir CLDR, un ternārais operators starp diviem tekstiem ir aizliegts, jo tas komponentā iekausē angļu valodas daudzskaitļa likumus. Ja vēlaties uzzināt vairāk, rakstā kas ir ICU MessageFormat aprakstīta sintakse, kurā tiek kompilētas daudzskaitļa formas.

Skaitļi un datumi. i18n.number() un i18n.date(), nekad toFixed() vai valūtas simbols, kas pievienots vērtībai. Pašas Lovable darbvietas knowledge piemērā ir lokalizācijas sadaļa, kas nosaka datuma formātu un Eiropas skaitļu formatēšanu — tas ir labs instinkts, taču tas ir formatēšanas noteikums, nevis teksta ietīšanas noteikums. Lietotne var to ievērot nevainojami un tomēr izlaist katru virsrakstu angļu valodā.

Tulkotāju komentāri. Īsi teksti ar vairākām nozīmēm, kailas darbību etiķetes un domēna termini saņem comment=, kas apraksta, kur teksts parādās. context= ir rezervēts gadījumiem, kad viens un tas pats teksts dažādās vietās jātulko atšķirīgi.

Kataloga uzturēšana. Katrs jauns teksts tiek ietīts un pievienots katram src/locales/*/messages.po ar tukšu msgstr, lai Lingui līdz tulkojuma saņemšanai izmantotu pirmavota tekstu. Aģents nekad nepalaiž lingui extract, jo Lovable nav termināļa; to pēc sinhronizācijas izdara GitHub Action. Un tas nekad nerediģē #. un #: komentāru rindas esošajos ierakstos, jo ekstrakcija tās ģenerē no jauna.

Šī pēdējā sadaļa padara noteikumus par Lovable specifiskiem. Cursor vai Claude Code noteikumu fails var beigties ar “palaid linteri”. Lovable noteikumu fails to nevar, tāpēc tam jānorāda, kas jādara ar rokām un ko atstāt CI.

Kas nodrošina noteikuma izpildi, kad Lovable neko nevar palaist?

GitHub darbplūsma, un tikai GitHub darbplūsma. Lovable nav termināļa, tāpēc starp brīdi, kad aģents uzraksta burtisku tekstu, un izmaiņu sinhronizāciju uz jūsu repozitoriju nav lint soļa. Tā ir strukturālā atšķirība no IDE aģentiem, kur lint noteikums CI ir tas, kas liek būvējumam neizdoties burtiska teksta dēļ.

Ja iestatīšanas laikā to izvēlaties, skill pievieno GitHub Actions darbplūsmu, kas darbojas pēc push noklusējuma zarā — tieši tur nonāk Lovable sinhronizācija —, izgūst ietītos tekstus katalogos un atpakaļ iesūta kataloga sinhronizācijas commit. Ja GitHub lietotnei trūkst workflows atļaujas, skill palūdz failu pievienot manuāli GitHub. Tas noslēdz ciklu visam, ko aģents ir ietinis. Tas neko nedara attiecībā uz tekstu, ko aģents nav ietinis, jo ekstrakcija redz tikai makro.

Tātad godīgais attēls ir šāds: noteikumi AGENTS.md samazina neietītu burtisku tekstu parādīšanās biežumu, knowledge norāde tos atbalsta garās sarunās, un pārējo notver diff GitHub. Ja vēlaties, lai pārējo notver mašīna, pievienojiet eslint-plugin-i18next noteikumu no-literal-string kā soli tajā pašā darbplūsmā. Tas darbojas repozitorijā, kas ir vienīgā vieta, kur Lovable projekts vispār var kaut ko palaist.

Kas notiek ar tekstiem, kas tiek ietīti?

Tie jātulko, un tā ir tā daļa, ko vērts automatizēt, nevis risināt ar atkārtotām uzvednēm. Konvertēšana ir vienreizēja un notiek lietotnē: pieslēdziet repozitoriju, un globalize.now vienreiz konvertē kodubāzi, piegādājot katalogu kā pull request, ko varat pārskatīt. Pēc tam push darbi tulko jaunās kataloga vienības, tiklīdz tās parādās, tāpēc <Trans>, ko Lovable uzrakstīja otrdien, tulkojumus pull request saņem līdz trešdienai. Bez soļa informācijas panelī, bez eksporta, bez apstiprināšanas rindas; plašāks pamatojums šādai pieejai ir rakstā Lovable lietotnes lokalizēšana bez informācijas paneļa, bet precīzs iestatīšanas ceļš, tostarp GitHub savienojums un globalize konektors, ir Lovable integrācijas lapā.

Viena vēsturiska piezīme, jo tā izskaidro, kāpēc šī problēma dažiem Lovable veidotājiem šķiet jauna. Lovalingo tulkoja Lovable lietotnes izpildlaikā pārlūkā, tāpēc tikko ģenerēts angļu valodas komponents vienkārši tika no jauna iztulkots ielādes brīdī un atkārtošanās nekad neparādījās. Tas tika slēgts 2026. gada 31. augustā, un lietotnes, kas pārgāja uz commit saglabātiem katalogiem, izmantojot migrācijas rokasgrāmatu, ar šo augšupējo jautājumu saskaras pirmo reizi. Kataloga modelis ir pareizais kompromiss, jo iztulkotā iezīmēšana ir jūsu un indeksējama, taču tas prasa, lai aģents rakstītu tulkojamu kodu, un tas nozīmē — pastāstīt tam, kur atrodas noteikumi.

Ielieciet noteikumus tur, kur Lovable tos lasa

Palaidiet skill vienreiz, lai AGENTS.md saturētu pilno bloku, ielīmējiet divu rindu norādi projekta knowledge un ļaujiet GitHub darbplūsmai veikt ekstrakciju, ko redaktors nevar. Ja veidojat Lovable un vēlaties, lai visa, kas nonāk katalogā, tulkošana tiktu nokārtota, nevis uzturēta ar rokām, vibe coders lapa ir pārskats, bet cenas ir atsevišķā lapā.

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