1. Kodo ir tekstų atskyrimas
Pagrindinė bet kokio lokalizavimo sąlyga yra griežtas programos kodo ir tekstinių turinių atskyrimas. Visi rodomi tekstai turėtų būti saugomi išoriniuose išteklių failuose (pvz., Properties, JSON, YAML), o ne kietai užkoduoti šaltinio kode. Taip vertėjai gali dirbti nekeisdami kodo. Naudokite unikalius eilučių raktus kaip nuorodą kode, rodančius į atitinkamus vertimus. Šis atskyrimas taip pat palengvina priežiūrą ir leidžia vėliau pridėti naujų kalbų be kodo pakeitimų. Pasirūpinkite, kad ir UI etiketės, klaidų pranešimai bei įrankių patarimai būtų šiuose failuose.
2. Vietos žymekliai ir kintamieji
Tekstuose dažnai yra dinaminio turinio, pvz., skaičių, vardų ar datų. Jie turi būti įterpti naudojant vietos žymeklius, pvz., su printf formatavimu (%s, %d) arba modernesniais metodais, pvz., riestiniais skliaustais {0}. Svarbu, kad vertėjai žinotų vietos žymeklių eiliškumą ir reikšmę. Naudokite pavadintus vietos žymeklius (pvz., „{username}“), kad suteiktumėte kontekstą. Kalbose, kuriose skiriasi sakinio struktūra, vietos žymeklių eiliškumas gali skirtis. Todėl suteikite galimybę koreguoti eiliškumą vertime. Išbandykite visus variantus, kad išvengtumėte klaidingų ar neišsamių rezultatų.
3. Daugiskaitos taisyklės ir daryba
Vokiečių kalboje yra tik vienaskaita ir daugiskaita, tačiau daugelis kalbų turi sudėtingesnes daugiskaitos taisykles (pvz., arabų kalba su šešiomis kategorijomis). Naudokite tokias bibliotekas kaip ICU MessageFormat, kurios kalbai būdingai tvarko daugiskaitos taisykles. Savo ištekliuose apibrėžkite atskirus raktus skirtingoms daugiskaitos formoms (one, other). Kodas tada automatiškai parenka tinkamą formą pagal skaičių. Pavyzdys: „{count} {count, plural, one {Apfel} other {Äpfel}}“. Išbandykite kiekvieną kalbą su keliais skaičiais, kad įsitikintumėte, jog rodoma teisinga daugiskaitos forma. Venkite fiksuotų if sąlygų – tai klaidų šaltinis.
4. Teksto ilgis ir maketo paraštės
Vertimai dažnai būna ilgesni arba trumpesni nei originalus tekstas. Ypač mygtukuose, meniu ir etiketėse tai gali sugriauti maketą. Todėl numatykite pakankamai vietos teksto išplėtimui – gera gairė yra 30 % papildomos vietos Vakarų kalboms, daugiau Azijos kalboms. Naudokite dinaminius maketus, kurie prisitaiko prie teksto ilgio (pvz., „Auto Layout“ sistemoje „iOS“ arba „Flexbox“ žiniatinklyje). Venkite fiksuotų pločių. Leiskite UI elementams, jei reikia, apvynioti tekstą. Išbandykite sąsają su ilgiausiais numatomais vertimais, kad išvengtumėte persidengimų ar nukirpimų.
5. Raktai, kontekstas vertėjams ir RTL
Vienareikšmiai eilučių raktai yra lokalizacijos pagrindas. Naudokite aprašomuosius pavadinimus (pvz., „login.button.title“) ir dokumentuokite naudojimo paskirtį. Suteikite vertėjams kontekstą: ekrano nuotraukas, maksimalų simbolių skaičių, apribojimus (pvz., „ne ilgesnis nei 20 simbolių“). RTL kalboms, tokioms kaip arabų ar hebrajų, sąsaja turi būti veidrodinė. Naudokite maketo atributus, kurie automatiškai palaiko RTL (pvz., „start“/„end“ vietoj „left“/„right“). Išbandykite visą navigaciją RTL sąlygomis. Pagalvokite ir apie piktogramas bei grafiką – jie gali būti skirtingai interpretuojami pagal kultūrą.