Hvis du arbejder på et større program og ønsker der skal være et pænt sæt features og en masse indstillingsmuligheder, så kan muligheden for flere sprog ihvertfald pynte
lidt på det.
Vi gør det sådan at brugeren et eller andet sted fra, får adgang til hmmm lad os sige "LanguageForm". I denne skal vi så have en OK og Cancel knap. OK knappen gennemgår jeg om lidt, og i Cancel's OnClick skriver du simpelt nok
Close;
Når formen vises eller laves (OnShow eller OnCreate) skal programmet hente de registerede sprog fra en fil vi kalder lng_index.txt eller noget andet, du skal bare huske at ændre i kode eksemplerne hvis du finder et andet navn. Det gør vi ved at skrive
ListBox1.Items.LoadFromFile('lng_index.txt');
Nu skulle vi gerne være noget så langt, så programmet kan finde de registerede sprog. Nu siger vi så at brugeren vælger et sprog fra listen og trykker på OK. I OK-knappens OnClick skriver du så
Form1.Memo1.Lines.LoadFromFile(ListBox1.Items[ListBox1.ItemIndex] + '.lng');
Det jeg har forestillet mig her, er at der i Form1 eller hvad din hoved form nu hedder, er der komponentet Memo1 eller noget andet, som du selvfølgelig har skjult, så brugeren ikke følger med i hvad der foregå under processen. Jeg går samtidig ud fra at det LNG format vi arbejder med, bare er tekst linie for linie, fx
New Project
Open Project
Save Project
osv. Nu skal sproget så deles rundt i programmet. Det gør du ved evt at skrive
NewProject1.Caption := Memo1.Lines[0]; // NewProject1 er et MainMenu Rullepanel dims noget
OpenProject1.Caption := Memo1.Lines[1];
SaveProject1.Caption := Memo1.Lines[2];
// osv.
Her forestiller vi os at programmet måske lige nu er på dansk og at den hentede fil er på engelsk (filnavn måske english.lng, og i lng_index.txt filen så kaldt "English"). Nu skulle du være i stand til at lægge nye sprog ind i dit program, husk altid at checke om det voste tekst fra et komponent er kaldt Caption, Text eller noget andet... Held og lykke med dit program uanset og du bruger denne kode eller ej. Men som sagt anbefaler jeg den kun til større programmer og så vil jeg lige være sikker på at du har fundet af at brugeren på denne måde får mulighed enten for selv at lave eller downloade flere sprog. De kan jo altid bruge en eksisterende fil som eksempel på hvordan de laver deres egne.
Mark H. Jensen