Delphi Can

Orjinalini görmek için tıklayınız: Uygulamama dil seçeneği eklemek istiyorum.
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Sayfalar: 1 2
Merhaba,
Delphi 10.2 kullanıyorum.
İçinde toplamda yaklaşık 50-60 caption ve uyarı metni bulunan (vcl) uygulamama dil seçenekleri eklemek istiyorum.
Embarcaderonun sitesinde tarif edildiği şekilde Project ->Languages-> Add yolunu izleyerek dilleri ekledim ama sonrası çok karıışık geldi.

Yapacağım değişiklik fazla olmayacağı için dil seçeneklerinin olduğu bir combobox ekleyip sonra if  then bloğu ile tüm tanımlamaları yapsam mı? Yoksa isteğimi gerçekleştirmek için daha iyi bir yol var mı?
Merhaba;

Forumdaki Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.konudan veya Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.konudan veya arama ile daha hızlı sorunuzu çözebilirsiniz.

İyi çalışmalar.
Merhaba,
o iki konuyu (hatta daha fazlasını) okumuş ve bana uygun çözüm bulamamıştım.
Belki o konuların altına sorumu sorarak daha uygun bir hareket etmiş olacaktım, beni uyardığınıza göre demek ki yeni konu açmak suretiyle yanlış hareket etmişim.
Bu arada, bir dil tablosu oluşturup, verileri bu tablodan çekmeye karar verdim. Yapacağım değişiklik sayısı az ama, çevirilerin kontrolü ve yeni dil eklenmesi daha kolay olur diye düşünüyorum.
(26-03-2018, Saat: 13:35)canbir Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Merhaba,
o iki konuyu (hatta daha fazlasını) okumuş ve bana uygun çözüm bulamamıştım.
Belki o konuların altına sorumu sorarak daha uygun bir hareket etmiş olacaktım, beni uyardığınıza göre demek ki yeni konu açmak suretiyle  yanlış hareket etmişim.
Bu arada, bir dil tablosu oluşturup, verileri bu tablodan çekmeye karar verdim. Yapacağım değişiklik sayısı az ama, çevirilerin kontrolü ve yeni dil eklenmesi daha kolay olur diye düşünüyorum.

pro_imaj'ın vermiş olduğu TLang ile ilgili konu ve örneklerdir. TLang, FireMonkey mimarisine özgüdür. Yanlış anlamadıysam siz VCL'de nasıl yapılacağı konusunda bir yardım talebinde bulunmuşsunuz.
Eğer VCL için ise formda bu konu ile ilgili bir bilgiyi ben göremedim. Bu durumda doğru yerde doğru konu açmışsınız demektir.
Merhaba;
Konuyu araştırdığınızı siz biliyorsunuz, burada belirtmemişsiniz, bundan dolayı belki gözden kaçmış olabilir düşüncesiyle linkleri paylaştım.

Tabloda tutmakta iyi bir yöntem olabilir, geçmişte böyle bir ihtiyacım oluşmuştu, bende tabloda tutuyordum. Tabi delphi her konuda olduğu gibi bu konuda da yeni özellikler sunmuştur.

*Tabloda tutmakla oluşturacağınız açıklamalar db yöntemiyle tek tek bağlamak zorunda kalacaksınız, geliştirme açısından sizi yavaşlatacak bir unsur olarak proje büyüdükçe karşınıza çıkacaktır.

İyi çalışmalar.
Merhaba.

- INI dosyası kullanma konusunda deneyiminiz varsa işinizi göreceği kanaatindeyim. Program klasöründe veya kullanıcının oturumuna göre değişken Belgeler klasöründe konumlanacak bir INI dosyasından güncel CAPTION değerlerini okutarak, ilgili VCL(ler) ve dahi Mesaj varsayılanlarının yeniden düzenlenme imkanı verebilirsiniz.
Şöyle bir component var ama ücretli : Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(26-03-2018, Saat: 15:33)mrmarman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Merhaba.

- INI dosyası kullanma konusunda deneyiminiz varsa işinizi göreceği kanaatindeyim. Program klasöründe veya kullanıcının oturumuna göre değişken Belgeler klasöründe konumlanacak bir INI dosyasından güncel CAPTION değerlerini okutarak, ilgili VCL(ler) ve dahi Mesaj varsayılanlarının yeniden düzenlenme imkanı verebilirsiniz.

ini yöntemi tablodan daha mantıklı geldi. Özellikle tanımlama kısmı çok daha kolay olacaktır.
Yardımcı olan tüm arkadaşlara teşekkür ediyorum (+ rep vermeyi de ihmal etmiyorum.)
İni okurken kolaylık olsun diye şöyle bir fonksiyon yapmıştım . Kullanmak istersen aşağıdaki gibi kullanabilirsin

//bendeki ini dosyasının adı Ayarlar.ini 
//Ayarlar ini dosyasındaki başlık bende [Muzik Kutusu].. Sende Dil seçenekleri yazabilirsin
//Diyelim ki senin ini dosyanda 
   TR=Türkçe
   En= İngilizce
    
Paylaşmış olduğum fonksiyon ile şöyle kullanabilirsin (usesa IniFiles eklemeyi unutma)

Function ini_Oku(Okunacak_Alan:String):AnsiString;
var
Ini   : TINIFile;
okunan: AnsiString;
begin

Ini := TINIFile.Create(ExtractFilePath(Application.ExeName)+'Ayarlar.INI'); // exe dosyasının yanındaki ayarlar ini dosyasında
okunan:=Ini.ReadString('Dil Seçenekleri',Okunacak_Alan,'');
Ini.Free;
Result:=okunan;
end;



//Kullanılışı 
ini_Oku('TR');
/// ini dosyasında TR etiketi ile tanımladığın yerin karşısındaki değeri döndürür.

İni dosyasındaki belli bir etikete bilgi eklemek içinde şunu kullanıyorum
procedure Ayarlar_iniye_ekle( Bolum,Bilgi:string );
Var
 Ini : TINIFile;
begin
   Ini := TINIFile.Create(ExtractFilePath(Application.ExeName)+'Ayarlar.INI');
   Ini.WriteString('Dil Seçenekleri', Bolum ,Bilgi);
   Ini.Free;
end;

Kullanılışı
Ayarlar_iniye_ekle('TR','Türkçe');
// Ayarlar ini dosyasındaki TR alanına Türkçe kelimesini ekler
(26-03-2018, Saat: 21:44)canbir Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(26-03-2018, Saat: 15:33)mrmarman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Merhaba.

- INI dosyası kullanma konusunda deneyiminiz varsa işinizi göreceği kanaatindeyim. Program klasöründe veya kullanıcının oturumuna göre değişken Belgeler klasöründe konumlanacak bir INI dosyasından güncel CAPTION değerlerini okutarak, ilgili VCL(ler) ve dahi Mesaj varsayılanlarının yeniden düzenlenme imkanı verebilirsiniz.

ini yöntemi tablodan daha mantıklı geldi. Özellikle tanımlama kısmı çok daha kolay olacaktır.
Yardımcı olan tüm arkadaşlara teşekkür ediyorum (+ rep vermeyi de ihmal etmiyorum.)

Merhaba

Vakti zamaninda Bir Arkadasim bana yazmis oldugu bir Programdan alinti olarak, INI örnegi de ben ekliyeyim.

Uses kismina Ini kütüphanesini ekledikten sonra ,INIFILES




procedure TFrmMain.FormCreate(Sender: TObject);
Begin
// ÝNÝ DOSYA OLUÞTUR
INIFILE1 := TIniFile.Create(ExtractFilePath(Application.ExeName)+'IniDosyaIsmi.ini');
  // ÝNÝ DOSYADAN GEREKLÝ DEÐERLERÝ OKU
VT1 := INIFILE1.ReadString('PROGRAM','VT','') ;
MAKID:=  INIFILE1.ReadString('PROGRAM','MAKINEID','') ;
DosyaYollar := INIFILE1.ReadString('PROGRAM','YOL','');
PBSTASLAK:= INIFILE1.ReadString('PROGRAM','pbsvorlage','');
OGRENIM := INIFILE1.ReadString('PROGRAM','OGRANIM','');
end;

Umarim isine yarar
Sayfalar: 1 2