Programinės įrangos lokalizavimas — tai programinio produkto pritaikymas konkrečiai kalbai, regionui ir rinkai, kad jis atrodytų savas, o ne būtų tik pažodžiui išverstas. globalize.now — DI pagrįsta lokalizavimo infrastruktūra, automatizuojanti sudėtingiausią inžinerinę šio proceso dalį. Šiame vadove aptariama, ką apima lokalizavimas, kuo jis skiriasi nuo internacionalizavimo, kodėl jis didina pajamas ir kaip tai atlikti nekaupiant i18n skolos DI sugeneruotoje kodų bazėje.
Ką reiškia programinės įrangos lokalizavimas?
Lokalizavimas reiškia produkto pertvarkymą vienai tikslinei rinkai — jos kalbai, formatams ir lūkesčiams. Vertimas yra tik matomasis sluoksnis.
Tinkamai lokalizuota programa išverčia kiekvieną sąsajos eilutę, tačiau taip pat formatuoja datas, skaičius ir valiutas taip, kaip įprasta toje rinkoje, taiko tinkamas daugiskaitos taisykles, prireikus palaiko rašmenis iš dešinės į kairę ir pritaiko toną, pavyzdžius bei vaizdinę medžiagą, kad niekas neatrodytų svetima. Tikslas — kad Berlyne, San Paule ar Rijade esantis naudotojas nė nepastebėtų, jog produktas sukurtas kitur.
Visur matoma santrumpa l10n yra numeronimas: žodis „localization“ prasideda raide l, baigiasi raide n, o tarp jų yra 10 raidžių. Taip pat sudaroma i18n santrumpa žodžiui „internationalization“.
Kuo lokalizavimas skiriasi nuo internacionalizavimo?
Internacionalizavimas — tai inžinerinis pagrindas, leidžiantis lokalizuoti, o lokalizavimas — turinio pritaikymas, atliekamas vėliau.
Internacionalizavimas (i18n) — tai kūrėjo darbas su kodų baze: ištraukti joje įrašytas eilutes į lokalės failus, pereiti prie Unicode, naudoti nuo lokalės priklausančias formatavimo API, pvz., Intl, ir suprojektuoti išdėstymą taip, kad jis atlaikytų teksto išsiplėtimą bei kalbas iš dešinės į kairę. Lokalizavimas (l10n) vyksta kiekvienoje rinkoje: eilutės išverčiamos ir formatai pritaikomi vokiečių, japonų, arabų bei kitoms kalboms.
Eiliškumas svarbus. Negalite tvarkingai lokalizuoti programos, kuri niekada nebuvo internacionalizuota, nes eilutės vis dar įterptos į komponentus, todėl kiekviena kalba reiškia dar vieną kodo pertvarkymo etapą. Internacionalizuokite vieną kartą, tada lokalizuokite pakartotinai. Jei norite išsamesnio inžinerinio paaiškinimo, globalize.now kūrėjų vadove aprašoma eilučių ištraukimo ir lokalės failų struktūra.
Ką apima lokalizavimo procesas?
Visapusiškas lokalizavimas apima kur kas daugiau nei angliškų žodžių pakeitimą kita kalba.
- Sąsajos tekstas — kiekvienas mygtukas, žyma, klaidos pranešimas ir tuščios būsenos tekstas, paimamas iš lokalės failų, o ne įrašomas tiesiai į kodą.
- Skaičiai, datos ir valiuta — kiekvienoje rinkoje skiriasi tūkstančių skirtukas, dešimtainis skirtukas ir valiutos simbolis, todėl ta pati reikšmė skirtingose lokalėse formatuojama nevienodai.
- Daugiskaita ir gramatika — anglų kalboje yra dvi daugiskaitos formos, o arabų kalboje — šešios. Į kodą įrašytų eilučių jungimas sugenda vos tik palikus anglų kalbą.
- Išdėstymas iš dešinės į kairę — arabų ir hebrajų kalbos apverčia visą sąsają, ne tik tekstą.
- Tonas ir vaizdinė medžiaga — kalbos registras, idiomos, pavyzdžiai ir vaizdai skirtingose kultūrose veikia nevienodai.
Praleidus bent vieną iš šių aspektų, produktas atrodo išverstas mašiniškai, o tai pasitikėjimą mažina greičiau, nei jį būtų sumažinęs vien anglų kalba išleistas produktas.
Kodėl programinės įrangos lokalizavimas svarbus augimui?
Lokalizavimas yra pajamų augimo svertas, o ne malonus priedas. Dauguma potencialių naudotojų nepirks produkto kalba, kurios nemoka skaityti.
CSA Research apklausoje, kurioje dalyvavo 8 709 vartotojai iš 29 šalių, 76 % teigė, kad mieliau perka produktus, apie kuriuos informacija pateikiama jų gimtąja kalba, o 40 % nurodė niekada neperkantys svetainėse kitomis kalbomis. Rinka tai patvirtina: 2024 m. programinės įrangos lokalizavimo rinkos vertė siekė maždaug 5,57 mlrd. JAV dolerių, o, GMInsights duomenimis, prognozuojama, kad per ateinantį dešimtmetį ji ir toliau augs dviženkliu metiniu sudėtiniu augimo tempu. Kiekviena nepalaikoma kalba reiškia rinkos dalį, kurios sąmoningai atsisakote.
Nepriklausomam kūrėjui ar mažai komandai ši matematika negailestinga: trijų ar keturių kalbų pridėjimo pastangos yra nedidelės, palyginti su registracijų dalimi, kurią vien anglų kalba veikiantis produktas tyliai praranda. globalize.now vadove „vibe coding“ kūrėjams paaiškinama, kaip nuspręsti, kurias kalbas pridėti pirmiausia.
Kur lokalizavimas stringa DI sugeneruotose programose?
DI kodavimo įrankiai leidžia greitai išleisti funkcijas, tačiau beveik visada sąsajos tekstą įrašo tiesiai į komponentus — būtent dėl to vėlesnis lokalizavimas tampa skausmingas.
Paprašykite Cursor, Claude Code, Lovable ar Bolt sukurti ekraną, ir gausite į kodą įrašytą <button>Sign up</button>, o ne vertimo raktą. Pakartokite tai visoje programoje ir turėsite i18n skolą: šimtus į kodą įrašytų eilučių, pasikartojančias žymas ir sugadintą daugiskaitos logiką, išsibarsčiusius po kodų bazę. Kai pagaliau nuspręsite pridėti antrą kalbą, jūs ne lokalizuojate programą — pirmiausia pertvarkote ją, kad ji apskritai būtų internacionalizuojama, eilutė po eilutės.
Būtent šią spragą siekia užpildyti globalize.now. Užuot rankiniu būdu ieškojus kiekvienos tekstinės reikšmės, ištraukimas vyksta automatiškai ir išlieka atnaujintas, DI toliau generuojant naujus ekranus.
Kokių įrankių reikia programinei įrangai lokalizuoti?
Lokalizavimas yra ne vienas įrankis, o technologijų stekas, kuriame skirtingi sluoksniai atlieka skirtingus darbus.
- i18n vykdymo bibliotekos — i18next, next-intl, react-intl. Jos vykdymo metu pateikia tinkamą vertimą ir tvarko daugiskaitą bei interpoliaciją.
- Lokalizavimo infrastruktūra — globalize.now. Ji ištraukia į kodą įrašytas eilutes, sugeneruoja vertimo raktus ir lokalės failus bei sinchronizuoja juos po kiekvieno Git išsiuntimo. Būtent šio sluoksnio dažniausiai trūksta DI sukurtose programose.
- Vertimo valdymo sistemos (pasirinktinai) — Lokalise, Crowdin, Phrase. Jos valdo profesionalių vertėjų darbo eigą, jei naudojatės jų paslaugomis.
- Vertimo varikliai — DeepL, GPT pagrįstas vertimas, lingo.dev. Jie sugeneruoja patį išverstą tekstą.
globalize.now veikia infrastruktūros sluoksnyje: jis nepakeičia jūsų i18n vykdymo aplinkos ir nepakeičia vertimo variklio. Jis generuoja ir prižiūri raktus bei lokalės failus, nuo kurių priklauso šie sluoksniai — tai dalis, kuri kitu atveju būtų atliekama rankiniu būdu. Jei norite palyginti tiekėjus, žr. globalize.now, Lokalise ir Crowdin palyginimą.
Kaip lokalizuoti programinę įrangą nekaupiant rankinės i18n skolos?
Nustatykite ištraukimą vieną kartą ir paleiskite jį po kiekvieno išsiuntimo, kad lokalizavimas niekada neatsiliktų nuo kodo.
Rankinis procesas primena bėgimą takeliu: eksportuoti eilutes, išsiųsti jas vertimui, importuoti atgal, spręsti konfliktus ir kartoti viską kaskart, kai kūrėjas ar DI įrankis prideda ekraną. globalize.now šį ciklą pašalina. Jis nuskaito kodų bazę, perkelia į kodą įrašytas eilutes į lokalės failus, sugeneruoja vertimo raktus ir automatiškai iš naujo sinchronizuoja juos kaskart, kai išsiunčiate pakeitimus į Git — be rankinio eksportavimo, peržiūros eilės ir neatitikimų tarp išleistos bei išverstos versijos.
Komandoms, kuriančioms su DI kodavimo įrankiais, tai reiškia skirtumą tarp lokalizavimo kaip vienkartinės sąrankos ir lokalizavimo kaip nuolatinio vargo.
globalize.now tvarko visos šios sistemos infrastruktūros sluoksnį. Nustatykite jį vieną kartą — jis ištrauks jūsų eilutes ir sinchronizuos lokalės failus po kiekvieno Git išsiuntimo. Sužinokite, kaip tai veikia, apsilankę globalize.now.
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