1. Koda un tekstu atdalīšana
Pamatprasība jebkurai lokalizācijai ir stingra programmkoda un teksta satura atdalīšana. Visi attēlojamie teksti jāglabā ārējās resursdatnēs (piemēram, Properties, JSON, YAML), nevis cieti kodēti avota tekstā. Tādējādi tulkotāji var strādāt, nemainot kodu. Izmantojiet unikālas virkņu atslēgas kā atsauces kodā, kas norāda uz attiecīgajiem tulkojumiem. Šī atdalīšana arī atvieglo uzturēšanu un ļauj vēlāk pievienot jaunas valodas bez koda izmaiņām. Pārliecinieties, ka arī lietotāja saskarnes uzraksti, kļūdu ziņojumi un rīka padomi tiek iekļauti šajās datnēs.
2. Vietturi un mainīgie
Teksti bieži satur dinamiskus saturus, piemēram, skaitļus, vārdus vai datus. Tie jāievieto, izmantojot vietturus, piemēram, ar printf formatējumu (%s, %d) vai modernākām pieejām, piemēram, ar cirtainajām iekavām {0}. Svarīgi, lai tulkotāji zinātu vietturu secību un nozīmi. Izmantojiet nosauktus vietturus (piemēram, „{username}”), lai sniegtu kontekstu. Valodās ar atšķirīgu teikuma struktūru vietturu secība var atšķirties. Tāpēc nodrošiniet iespēju pielāgot secību tulkojumā. Testējiet visas versijas, lai izvairītos no kļūdainiem vai nepilnīgiem rezultātiem.
3. Daudzskaitļa noteikumi un veidošana
Vācu valodā ir tikai vienskaitlis un daudzskaitlis, bet daudzās valodās ir sarežģītāki daudzskaitļu noteikumi (piem., arābu valodā ir sešas kategorijas). Izmantojiet bibliotēkas, piemēram, ICU MessageFormat, kas apstrādā daudzskaitļu noteikumus atbilstoši valodai. Savos resursos definējiet atsevišķas atslēgas dažādām daudzskaitļu formām (one, other). Kods pēc tam automātiski izvēlas atbilstošo formu, pamatojoties uz skaitli. Piemērs: „{count} {count, plural, one {ābols} other {āboli}}“. Pārbaudiet katru valodu ar vairākām skaitļu vērtībām, lai pārliecinātos, ka tiek parādīta pareizā daudzskaitļa forma. Izvairieties no fiksētiem if vaicājumiem – tie ir kļūdaini.
4. Teksta garums un izkārtojuma rezerve
Tulkojumi bieži ir garāki vai īsāki par oriģināltekstu. Īpaši pogām, izvēlnēm un etiķetēm tas var izjaukt izkārtojumu. Tāpēc plānojiet pietiekami daudz vietas teksta paplašināšanai – labs rādītājs ir 30% papildu vieta Rietumu valodām, vairāk Āzijas valodām. Izmantojiet dinamiskus izkārtojumus, kas pielāgojas teksta garumam (piem., Auto-Layout iOS vai Flexbox tīmeklī). Izvairieties no fiksētiem platumiem. Ļaujiet UI elementiem nepieciešamības gadījumā izmantot teksta aplaušanu. Pārbaudiet saskarni ar garākajiem paredzamajiem tulkojumiem, lai izvairītos no pārklāšanās vai apgriešanas.
5. Virkņu atslēgas, konteksts tulkotājiem un RTL
Unikālas virkņu atslēgas ir lokalizācijas mugurkauls. Izmantojiet aprakstošus nosaukumus (piem., „login.button.title“) un dokumentējiet lietošanas mērķi. Sniedziet tulkotājiem kontekstu: ekrānšāviņus, maksimālo rakstzīmju garumu, ierobežojumus (piem., „ne garāks par 20 rakstzīmēm“). RTL valodām, piemēram, arābu vai ivritam, UI ir jāatspoguļo. Izmantojiet izkārtojuma atribūtus, kas automātiski atbalsta RTL (piem., start/end, nevis left/right). Pārbaudiet visu navigāciju RTL apstākļos. Padomājiet arī par ikonām un grafikām – tās var tikt interpretētas atšķirīgi atkarībā no kultūras.