Kapitel 24. Internationale programmer

24.1. Indledning

Java hjælper dig med at gøre dine programmer platformsuafhængige, men hvad hvis de også skal være sproguafhængige? Når et program skal anvendes af brugere med anden sproglig og kulturel baggrund så opstår der behov for at programtekster, beløb og datoangivelser afhænger af brugerens land, sprog og eventuelt andre faktorer. Dette benævnes lokalafhængighed.

En mulig måde at løse problemet på er at vedligeholde kildeteksten til sit program i flere forskellige versioner, der hver især understøtter et bestemt sprog. Man finder hurtigt ud af at denne løsningsmetode er uholdbar i længden idet ændringer og opdateringer til programmet medfører at samtlige versioner skal ændres. Ligeledes skal kildeteksten oversættes hver eneste gang. En bedre fremgangsmåde er at internationalisere og lokalisere sit program.

Internationalisering er den proces, hvor du laver et programdesign, som er sprogligt og kulturelt neutralt. Al formatering og fortolkning af tal-, beløbs-, dato- og klokkeslætangivelser skal med andre ord være afhængigt af en række parametre, der på kørsels- eller oversættelsestidspunktet bestemmer den konkrete sproglige og kulturelle kontekst som programmet skal indgå i. Ligeledes skal sproglige tekster og direkte stinavne til billeder adskilles fra kildeteksten.

Internationalisering er ikke nok i sig selv. Lokalisering er den process, hvor du tilpasser dit internationaliserede program så det imødekommer de sproglige og kulturelle krav, der stilles af den givne målgruppe.

Data som skal fremvises til brugeren kan kategoriseres ud fra om det er lokalafhængigt eller lokaluafhængigt.

JDK stiller værktøjer til rådighed som hjælper dig med både internationaliserings- og lokaliseringsprocessen, herunder håndtering af lokalafhængige og uafhængige data. De næste mange sektioner går i dybden med disse værktøjer.

I Afsnit 24.2 beskrives hvordan man i sin programkode angiver en bestemt sproglig og geografisk region.

I Afsnit 24.3 beskrives hvordan lokalafhængige data håndteres, mens Afsnit 24.5 og Afsnit 24.6 beskæftiger sig med formatering af lokaluafhængige data.