wielojezykowy program

0

Jak zrobic program z mozliwoscia zmiany jezyka np. z polskiego na angielski korzystam z delphi 7 personal. wiem ze bylo tutaj info jak to zrobic ale nie moge znlaesc tej funkcji w personalu, on jest trosze okrojony i pewnie tego nie ma.

0

na plikach INI to oprzyj chociazby

0

no tak myslalem o tym ale program ktory pisze to ma trosze tych stringów:-)

0

a czego oczekujesz? zlotego srodka? ze 1000 zdan do przetlumaczenia da sie upchnac w 2-3 linie?

PS. mozesz tez uzywac XML

0

Jest taki komponencik z JVCL`a ktory automatyzuje tlumaczenia tzn. ze ladujesz specjalnie przygotowany plik XML a on robi reszte, struktura wyglada mniejwiecej tak:

EN:
...naglowek XML ...
<form1 caption="Main window">
<button1 caption="click me" />

PL:
...naglowek XML ...
<form1 caption="Okno glowne" />
<button1 caption="kliknij tu" />

czy jakos tak ja sie na XML nie znam :P ale naprawde dobre

0

IMHO nie opłaca się używać jakichś dodatkowych komponentów tylko do obsługi języków - to można zrobić bardzo prosto na plikach INI (jak lofix napisał) lub ew. wykorzystać parser XML (jakich wiele) lub też napisać swój mechanizm - myśle, że też nie byłoby z tym większego problemu. Po prostu przy OnShow ładujesz wszystkie Captiony, Text`y itp z pliku wg okreslonego języka. Ot cały mechanizm.

0

Nom... Tylko ja mam pytanie (moze lamerskie): jak zaladowac captiony do poszczegolnych elementow znajac ich nazwe? Przyklad: mamy plik ini:
[Captions]
label1="tekst etykietki 1"
label2="tekst etykietki 2"
button1="clickme"

i po wczytaniu tego np. do tablicy i szukaniu elementow (np. petla) jak ustawic wartosc caption? Bo przeciez xx.Components[x] zwraca TObject albo cos takiego to to nie ma wlasciwosci caption... A jak wszystko potraktuje jak TLabel to bedzie super duzo bledow :/ wiec "jako co" traktowac aby zdobyc Caption?

0

TLabel(FindComponent('label1')).Caption := INI.ReadString(...);

0

nom ale mi chodzi o zautomatyzowanie procesu, bez deklaracji ze to jest label lub button... Po prostu podaje sie nazwe komponentu oraz jego nowy caption i tyle

0

If (Object is TLabel) then (Object as TLabel).Caption:='cośtam';
itp.

0

a nie lepiej zastosować pliki *.lng (ładowanych w zależności od wybranego języka) gdzie przechowujesz wszystkie napisy z przycisków (liczba przycisków się chyba nie znienia), a łatwo taki plik możesz przetłumaczyć (przy pomocy notatnikika), to rozwiązanie zobaczysz w grach takich jak Civ 3, czy edytorze programistycznym ConText(freeware)

0

heh robilem kiedys programik do tego na zlecenie , wyszukiwal z *.dfm stringi, udostepnial do tlumaczenia , zapisywal w ini a program juz sobie go odczytywal wedlug teog co wyzej :]

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.