[Delphi] wersja jezykowa aplikacji

Odpowiedz Nowy wątek
2009-02-05 01:36
gosc
0

Witam.

Mam takie pytanie odnośnie wersji językowych tworzonych aplikacji w Delphi (dokładnie Delphi 7).
Przy użyciu narzędzi Delphi tworzę sobie wersję językową np angielska wszystko ok spoko dopóki nie przeniosę programu na inny komp lub nawet jeśli zmienię mu ścieżkę dostępu (kopiuje wszystkie pliki językowe, ba nawet całe katalogi ze źródłami) po takiej zabawie program uruchamia mi się w oryginalnym języku w jakim był tworzony.
Znalazłem artykuł na ten temat na 4programmers ale niestety opis tam zawarty nie pomógł w rozwiązaniu tego problemu.

Pozostało 580 znaków

2009-02-05 11:47
PTwr
0

hmmh

procedure TForm1.FormCreate(Sender: TObject);
var
  x:TStringList;
  i,n:integer;
  s:string;
  z:TControl;
begin

  x:=TStringList.Create();
  x.LoadFromFile('c:\blah.txt');

  for i:=0 to Form1.ComponentCount-1 do
  begin

    n:=x.IndexOfName(Form1.Components[i].Name);

    if n=-1 then Continue;

    if Form1.Components[i] is TControl then
    begin

      { można też przez WITH ..... AS ale wtedy wredna forma wtryniała mi się zamiast tego z WITH }
      { bodajże wystarczy by było w metodzie poza klasą formy powinno się dać przez WITH =] }
      s:=x.ValueFromIndex[n];
      z:=Form1.Components[i] as TControl;
      z.SetTextBuf(PChar(s));

    end;

  end;

  x.Free;

end;

a w pliku

Button1=batonik
Label1=mój labelek
CheckBox1=zanzacz mnie!
RadioButton1=ja chcę kropeczkę!

takie coś?

Pozostało 580 znaków

2009-02-05 11:50
PTwr
0

tak sobie jakoś pomyślałem o tym:

"nawet jeśli zmienię mu ścieżkę dostępu"
a jak wyznaczasz sobie ścieżkę do plików?

jeśli katalog z danymi jest w katalogu z exe'kiem to można choćby i tak:

s:=ExtractFilePath(Application.ExeName);
  if s[Length(s)]<>'\' then s:=s'\'; { bodajże jeśli exe jest prosto na dysku to nie ma tej kreski na końcu }

i potem doklejać resztę ścieżki

Pozostało 580 znaków

2009-02-05 12:52
gosc
0

aa w sumie to nie o to chodziło
Twój pomysł fajny i zazwyczaj tez korzystam z własnych rozwiązań ale zachciało mi się używać translatora wbudowanego w delphi 7. (myślałem ze będzie szybciej przerobić w ten sposób aplikacje która nie była wcześniej pomyślana jako wielojęzyczna) i tu właśnie zoonk ze działa do momentu kiedy jest idealnie tak jak się ją kompiluje jak coś pozmieniam to mam problem.

Pozostało 580 znaków

2009-02-05 14:13
PTwr
0

a ten translator to chyba tylko w pełniastych wersjach jest, bo teraz mam jakieś home czy public i nigdzie go nie widzę więc trudno mi z tym pomóc =D

Pozostało 580 znaków

2009-02-05 16:14
gosc
0

a tak
chyba od enterpise jest w niższych nie ma :(

Pozostało 580 znaków

2009-02-05 21:09
PTwr
0

to nie marudź i rób własne =D

Pozostało 580 znaków

2009-02-05 21:35
gosc
0

Robie robie :)
dlatego problem da się w sumie łatwo obejść (pewnie nie tak jak borland sobie wymyślił ale cóż).
Po przerobieniu wersji na inne języki wystarczy z katalogu gdzie tworzy wersje językową wywlec dfm'y do głównego katalogu przekompilowac aplikacje i mamy na stale (dosłownie) nowa wersje językową:) rozwiązanie mało eleganckie ale na szybko poszło :d

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0