Frankfurter-studio til flersprogede digitale præsentationer +49 69 95209894 [email protected] Man–fre 9–17 Kundeområde →
DanskDA

Praktisk guide

Guide til app- og softwarelokalisering (i18n)

Lokalisering af apps og software kræver en gennemtænkt adskillelse af kode og tekster. Denne guide behandler tekniske aspekter som pladsholdere, flertalsregler, tekstlængder, string-keys, kontekst for oversættere og RTL-understøttelse. Den hjælper udviklere med at skabe internationale applikationer effektivt og konsistent uden at berøre juridiske eller økonomiske emner.

i18n
Internationalisering forkortet
RTL
Højre-til-venstre understøttelse
ICU
Internationale komponenter til Unicode
Diagram over adskillelse af kode og sprogressourcer

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.

Eksempel på pladsholdere i oversættelige strenge

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.

Tjekliste til markedsindtræden

  • Brug eksterne ressourcefiler til tekster
  • Pladsholdere med navngivne variable og justerbar rækkefølge
  • Implementer flertalsregler med ICU MessageFormat
  • Layout mindst 30% buffer til tekstforlængelser
  • Sigende strengenøgler med kontekstdokumentation
  • RTL-understøttelse via layout-attributter som start/end
Layoutgitter med forskellige tekstlængder og buffere

Ofte stillede spørgsmål

Hvorfor er adskillelsen af kode og tekster vigtig?

Den muliggør oversættelser uden kodeændringer, forenkler vedligeholdelsen og tillader tilføjelse af nye sprog uden at skulle kompilere softwaren igen.

Hvordan håndterer jeg flertalsformer på forskellige sprog?

Brug biblioteker som ICU MessageFormat, der vælger den korrekte flertalsform for hvert sprog. Definer i ressourcerne nøgler for hver flertalskategori (f.eks. one, other).

Hvad skal man især være opmærksom på ved RTL-sprog?

Brugergrænsefladen skal spejles: Brug logiske layout-attributter (start/end) i stedet for absolutte retninger. Test navigation og tekstindrykning under RTL-forhold.

Klar til dette marked?

Vi lokaliserer din hjemmeside sprogligt, teknisk og kulturelt – med modersmålskontrol og fast pris. Anmod om et uforpligtende tilbud.

Anmod om uforpligtende tilbud

Tysk GmbHAmtsgericht Frankfurt am Main · HRB 111727
D-U-N-S® registreret315030052
GDPR-kompatibel behandlingHosting i Tyskland
Faste priser med skriftlig leveringsgaranti