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.

lofix
  • Rejestracja:około 23 lata
  • Ostatnio:8 dni
  • Lokalizacja:Wdzydze
0

na plikach INI to oprzyj chociazby


Pozdrawiam. Karol
0

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

lofix
  • Rejestracja:około 23 lata
  • Ostatnio:8 dni
  • Lokalizacja:Wdzydze
0

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

PS. mozesz tez uzywac XML


Pozdrawiam. Karol
migajek
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 6 lat
  • Postów:370
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


Deti
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 9 lat
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.


migajek
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 6 lat
  • Postów:370
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?


Deti
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 9 lat
0

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


migajek
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 6 lat
  • Postów:370
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


Adam.Pilorz
  • Rejestracja:prawie 22 lata
  • Ostatnio:ponad 14 lat
  • Postów:2998
0

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


Grunt to uziemienie...
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)

SH
  • Rejestracja:około 21 lat
  • Ostatnio:ponad 13 lat
  • Postów:556
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.