1. Adskillelse af kode og tekster
Den grundlæggende forudsætning for enhver lokalisering er en streng adskillelse af programkode og tekstindhold. Alle tekster, der skal vises, bør gemmes i eksterne ressourcefiler (f.eks. Properties, JSON, YAML), ikke hardcodet i kildekoden. Derved kan oversættere arbejde uden at ændre koden. Brug unikke streng-nøgler som reference i koden, der peger på de respektive oversættelser. Denne adskillelse letter også vedligeholdelsen og gør det muligt senere at tilføje nye sprog uden kodeændringer. Sørg for, at også UI-etiketter, fejlmeddelelser og tooltips placeres i disse filer.
2. Pladsholdere og variabler
Tekster indeholder ofte dynamisk indhold som tal, navne eller datoer. Disse skal indsættes via pladsholdere, f.eks. med printf-formatering (%s, %d) eller mere moderne tilgange som krøllede parenteser {0}. Det er vigtigt, at oversættere kender pladsholdernes rækkefølge og betydning. Brug navngivne pladsholdere (f.eks. „{brugernavn}“) for at give kontekst. I sprog med forskellig ordstilling kan rækkefølgen af pladsholdere variere. Tilbyd derfor mulighed for at justere rækkefølgen i oversættelsen. Test alle varianter for at undgå fejlagtige eller ufuldstændige output.
3. Pluralisregler og flertalsdannelse
På tysk findes kun ental og flertal, men mange sprog har mere komplekse pluralisregler (f.eks. arabisk med seks kategorier). Brug biblioteker som ICU MessageFormat, der håndterer pluralisregler sprogspecifikt. Definer i dine ressourcer separate nøgler for de forskellige pluralisformer (one, other). Koden vælger derefter automatisk den korrekte form baseret på tallet. Eksempel: „{count} {count, plural, one {æble} other {æbler}}“. Test hvert sprog med flere numeriske værdier for at sikre, at den korrekte pluralisform vises. Undgå faste if-sætninger – det er fejlbehæftet.
4. Tekstlængde og layout-buffer
Oversættelser er ofte længere eller kortere end originalteksten. Især ved knapper, menuer og labels kan dette sprænge layoutet. Planlæg derfor tilstrækkelig plads til tekstforlængelser – en god retningslinje er 30 % ekstra plads til vestlige sprog, mere til asiatiske. Brug dynamiske layouts, der tilpasser sig tekstlængden (f.eks. Auto-layout i iOS eller Flexbox på nettet). Undgå faste bredder. Lad UI-elementer om nødvendigt håndtere tekstombrydning. Test grænsefladen med de længste forventede oversættelser for at undgå overlap eller afskæringer.
5. Strengenøgler, kontekst for oversættere og RTL
Unikke strengenøgler er rygraden i lokalisering. Brug sigende navne (f.eks. 'login.button.title') og dokumenter anvendelsesformålet. Giv oversættere kontekst: skærmbilleder, maksimal tegnlængde, begrænsninger (f.eks. 'ikke længere end 20 tegn'). For RTL-sprog som arabisk eller hebraisk skal brugergrænsefladen spejles. Brug layoutattributter, der automatisk understøtter RTL (f.eks. start/end i stedet for left/right). Test hele navigationen under RTL-forhold. Tænk også på ikoner og grafik – de kan fortolkes forskelligt afhængigt af kultur.