Programimi bircok dille kullanabilecek sekle donusturmek istiyorum. Bunun icin soyle bir yol izlemeye karar verdim.
once bir sozluk tablo olusturdum ve alanlarini su sekilde ayarladim
simdilik 3 dil var. Ama bu dil sayisi alan eklenerek cogaltilabilinir.ID INTEGER NOT NULL,
TURKISH VARCHAR(80),
ENGLISH VARCHAR(80),
ROMANIAN VARCHAR(80)
Simdi bu yapiyi biraz daha acayim burada herbir id icin ilgili dillerde anlamlar yazili mesela id=1 kaydinin degerleri su sekilde
Kullanici login ekranindan hangi dilde calismaya baslayacagini seciyor ve ben onu global kullandigim bir degiskene atiyorumturkish = musteri
english = customer
romanian = client
daha sonra herhangi bir formun(mdichild) oncreate event'ine su sekilde kod yaziyorumdil := combobox4.Text;
Kod: Tümünü seç
procedure Tfrm_crm.FormCreate(Sender: TObject);
begin
dm.tbl_dil.Locate('id',1,[]);
frm_crm.Label1.Caption := dm.tbl_dil.FieldByName(dil).AsString;
dm.tbl_dil.Locate('id',3,[]);
frm_crm.Caption := dm.tbl_dil.FieldByName(dil).AsString;
...
...
end;
bu islem form uzerindeki tum label button vs seyler icin yapiliyor
Simdi burada 2 problemim var.
label'a caption atarken access violation hatasi veriyor, form'a caption atarken bir hata mesaji yok. Diger problem ise su. Form acildiginda turkce secmis olmama ragmen orjinal ingilizce etiket degerleri geliyor. Yani benim atamaya calistigim degerler atanmiyor. Bu arada bu bir mdi uygulamasidir ve formlar su sekilde aciliyor.
Kod: Tümünü seç
procedure Tfrm_omega.FirmaTanimlari1Click(Sender: TObject);
begin
if frm_sirket = nil then
begin
frm_sirket := tfrm_sirket.create(self);
frm_sirket.show;
end;
end;
Diger bir sorumda su. Programcilikta ve kullanilan tekniklerde oldukca acemi sayilirim. Bu sekilde programi cok dilli bir yapiya cevirmek sizce mantiklimi?