Mūsdienu lietotnēm ir lokalizācijas problēma. Un tā nav tulkošana.
Pēdējo desmit gadu laikā lokalizācijas nozare ir pievērsusies tulkošanas darbplūsmām – rīkiem, kas palīdz komandām pārvaldīt tulkotājus, pārskatīt tekstus un izlaist daudzvalodu saturu.
Rīki, tādi kā Phrase, Lokalise, Crowdin un Transifex, ir izcili tulkojumu pārvaldībā. Tomēr tie visi netieši pieņem kaut ko izšķirīgu: ka lietotne jau ir internacionalizēta. Realitātē vairums lietotņu nav. Un ar AI ģenerētā koda pieaugumu šī plaisa drīz kļūs par milzīgu problēmu.
Kāds ir slēptais i18n slānis, ko lokalizācijas rīki nepamana?
Lokalizāciju un internacionalizāciju bieži jauc. Tās nav viens un tas pats.
Lokalizācija (l10n) — lietotnes tulkošana citās valodās.
Internacionalizācija (i18n) — kodubāzes sagatavošana, lai tulkošana vispār būtu iespējama.
Internacionalizācija ietver, piemēram: UI tekstu izgūšanu, tulkošanas atslēgu ģenerēšanu, lokalizācijas failu izveidi, daudzskaitļa (pluralizācijas) noteikumu atbalstu, skaitļu un datumu formatēšanu, atbalstu valodām no labās uz kreiso pusi un burtisku UI tekstu novēršanu. Vairums lokalizācijas rīku sāk darbu pēc šī soļa. Tomēr daudzās reālās kodubāzēs šis solis nekad nav noticis.
Kā izskatās pareizi internacionalizēts kods
Labi strukturētā lietotnē UI teksti ir atsaukti, izmantojot tulkošanas atslēgas.
<button>{t("checkout.submit_order")}</button>
Teksts glabājas lokalizācijas failos:
/locales/en.json
{
"checkout.submit_order": "Submit order"
}
Šī struktūra ļauj tulkošanas rīkiem un tulkošanas dzinējiem darboties uzticami.
Kā izskatās vairums lietotņu faktiski
Realitātē daudzas lietotnes izskatās šādi:
<button>Submit order</button>
<h1>Welcome back</h1>
<p>Your payment was successful</p>
No pirmā acu uzmetiena tas šķiet nekaitīgi. Bet iedomājies to reizinātu ar simtiem komponentu un tūkstošiem UI tekstu. Tagad visa kodubāze pieņem, ka saskarne būs tikai angļu valodā. Tiklīdz tu mēģini pievienot atbalstu citai valodai, problēmas parādās visur.
- Vācu teksts kļūst apmēram par 30 % garāks. Pogas pārplūst.
- Arābu valoda pieprasa izkārtojumu no labās uz kreiso pusi. Visa saskarne saplīst.
- Daudzskaitļa noteikumi atšķiras dažādās valodās. Ziņojumi kļūst gramatiski nekorekti.
Bez internacionalizācijas arhitektūras lokalizācija ātri pārtop par lielu pārstrukturēšanas projektu.
Kā AI koda ģenerēšana padarīja lokalizāciju sarežģītāku?
Mūsdienu izstrāde arvien vairāk balstās uz AI koda rīkiem: Cursor, GitHub Copilot, ChatGPT, Replit, Lovable, Bolt. Šie rīki optimizēti ātrumam un darbojošai saskarnei, ne arhitektūrai.
Tipisks AI ģenerētais kods izskatās šādi:
<button>Submit</button>
<h2>Welcome back</h2>
<p>Your order has been confirmed</p>
Tipiskā AI ģenerētā projektā var atrast: simtiem vai tūkstošiem burtisku UI tekstu, dublētu saskarnes tekstu, nekādu tulkošanas atslēgu, nekādu lokalizācijas failu, nekādu daudzskaitļa atbalstu. Citiem vārdiem sakot: perfektas demonstrācijas, briesmīga lokalizācijas arhitektūra.
Šis modelis ir paredzams. Komandas veido produktu ātri, palaiž to, iegūst lietotājus – un tad saprot: „Visa mūsu saskarne ir cietkodēta angļu valodā.“ Šajā punktā lokalizācijas pievienošana pieprasa aiztikt lielu daļu UI kodubāzes.
Reāls modelis, kuru novērojam
Skenējot mazus AI ģenerētus SaaS projektus, modelis atklājas ātri. Vienā prototipa React projektā, kuru analizējām: 1284 UI teksti 312 failos, ar nulles internacionalizācijas struktūru. Piemēri ietvēra:
<h1>Welcome back</h1>
<button>Start free trial</button>
<p>Your payment failed</p>
Lai pievienotu lokalizāciju, komandai nācās: izgūt UI tekstus no simtiem komponentu, ievest tulkošanas atslēgas, izveidot lokalizācijas failus, pārrakstīt UI loģiku – pirms tulkošana vispār varēja sākties. Šo modeli mēs redzam atkārtoti AI ģenerētos projektos.
Kāpēc tradicionālie lokalizācijas rīki nespēj tikt galā ar AI ģenerētu kodu?
Vairums lokalizācijas rīku ir izstrādāti tulkošanas komandām, ne izstrādātājiem. Šo rīku darbplūsmas pieņem, ka izstrādes komanda jau ir ieviesusi: i18n ietvaru, tulkošanas atslēgas, lokalizācijas failu struktūras, teksta izgūšanas ceļvedus. Tomēr mūsdienu kodubāzēs – jo īpaši AI ģenerētajās – šī bāze bieži pilnībā trūkst. Tāpēc komandas saskaras ar neparedzētu realitāti: pirms tās var kaut ko tulkot, tām vispirms nāksies pārstrukturēt visu UI slāni.
Trūkstošais slānis lokalizācijas kārtā
Šodienas lokalizācijas kārta parasti izskatās šādi:
Tomēr kaut kas izšķirīgs trūkst. Tas, kam faktiski jānotiek, ir:
Šim trūkstošajam slānim jāveic: kodubāzes skenēšana, UI tekstu izgūšana, tulkošanas atslēgu ģenerēšana, lokalizācijas failu izveide, dublēto tekstu atklāšana, terminoloģijas vārdnīcu izveide. Tikai tad var sākties tulkošanas darbplūsmas.
Kāpēc šī problēma tuvojas sprādzienam
Sadūrušās trīs lielas tendences.
- AI pirmajā vietā izstrādē. Vairāk lietotņu tiek veidotas ar AI palīdzību. Dažu jaunuzņēmumu kodubāzes tagad lielā mērā ir AI ģenerētas. Arhitektūra bieži pakļaujas ātrai izlaidei.
- Individuālo izstrādātāju vilnis. Katru nedēļu tiek palaisti tūkstoši jaunu SaaS produktu. Vairums tos sāk vispirms angļu valodā.
- Globāli lietotāji jau no pirmās dienas. Pat mazi produkti ātri piesaista lietotājus no Vācijas, Brazīlijas, Indijas, Japānas. Tiklīdz starptautiskie lietotāji parādās, lokalizācija kļūst steidzama. Tomēr arhitektūra parasti nav gatava.
Cita pieeja
Kas notiktu, ja internacionalizāciju varētu automatizēt? Tieši to dara sava repozitorija savienošana globalize.now platformā. Pirmā konvertācija tiek izpildīta vienreiz, lietotnē, un ziņo par atrasto:
✔ Found 128 UI strings
✔ Generated 92 translation keys
✔ Created /locales/en.json
✔ Updated 41 files
Done in 2.7s
Rīks: skenēs kodubāzi, izgūs lietotājam redzamos tekstus, ģenerēs strukturētas tulkošanas atslēgas, izveidos lokalizācijas failus, automātiski pārrakstīs UI kodu. Pārvēršot šo:
<button>Submit order</button>
Šajā:
<button>{t("checkout.submit_order")}</button>
Pēkšņi visa kodubāze kļūst gatava tulkošanai.
Jauna kategorija: AI gatava lokalizācija
Nākamā lokalizācijas rīku paaudze nesāksies ar tulkotājiem. Tā sāksies ar koda transformāciju. Darbplūsma izskatīsies vairāk šādi:
Lielākā plaisa mūsdienu lokalizācijas ekosistēmā ir šī pirmā soļa automatizēšana: kodubāzes sagatavošana globāliem lietotājiem.
Apskati, kā globalize.now to automātiski risina izstrādātāju komandām.
Lai iepazītos ar vēsturisko ceļu no CAT rīkiem līdz AI-native darbplūsmām, izlasi trīs lokalizācijas posmus AI ērā.
Lokalizācijas nākotne
Lokalizācija kādreiz bija tulkošanas problēma. AI izstrādes ērā tā kļūst par koda arhitektūras problēmu. Komandas, kas atrisinās šo slāni, noteiks, kā globālā programmatūra tiks veidota nākamajā desmitgadē.
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