Avatar billede -bomann- Nybegynder
15. august 2002 - 14:20 Der er 7 kommentarer og
1 løsning

Hvordan laver man en multilanguage applikation?

Jeg skal igang med at lave applikation der understøtter flere sprog. Jeg vil gerne have at man kan skifte sprog i menuer og på de forskellige skærmbilleder på en smart måde - hvordan kan man opbygge og styre det? .res??

Alle forslag har interesse...

/Thomas B)
Avatar billede borrisholt Novice
15. august 2002 - 14:22 #1
Kig ikde på www.Torry.net der er en masse gode eksempler
Avatar billede borrisholt Novice
15. august 2002 - 14:24 #2
Jeg plejer at bruge den her :

IniLang v.0.9  FWS 17 Kb 27.04.99 
By Frédéric Sigonneau. IniLang can help you to build at design-time, in a single pass, a ini file filled with all properties and messages you have to localize for a multilingual distribution based on ini files. Useful for large projects including many forms and lot of messages (and, you know, a little project grows very quickly). At run-time, allows you to change your interface localization 'on the fly', as long as you translated the ini file created with IniLang in as many languages you want to be available.
 
Fully functional
Source: Included
Download: http://www.torry.net/vcl/vcltools/multilanguage/inilang.zip

Jens B
Avatar billede cms Nybegynder
15. august 2002 - 14:33 #3
Avatar billede galleon Nybegynder
15. august 2002 - 14:38 #4
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.



Part 1



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.
Avatar billede galleon Nybegynder
15. august 2002 - 14:38 #5
svar
Avatar billede martinlind Nybegynder
15. august 2002 - 16:00 #6
Eller brug den indbyggede support der er i delphi
Avatar billede Slettet bruger
16. august 2002 - 20:50 #7
Der er vist en artikel om det på Udvikleren.dk, ganske vist er det ikke den smarteste metode....
Avatar billede -bomann- Nybegynder
19. august 2002 - 16:52 #8
Jeg har brugt Jens B. løsning.

http://www.torry.net/vcl/vcltools/multilanguage/inilang.zip

Tjek det ud - det virker forbløffende godt!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester