Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Uygulamama dil seçeneği eklemek istiyorum.
#1
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ı?
Cevapla
#2
Merhaba;

Forumdaki bu konudan veya bu konudan veya arama ile daha hızlı sorunuzu çözebilirsiniz.

İyi çalışmalar.
Cevapla
#3
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.
Cevapla
#4
(26-03-2018, Saat: 13:35)canbir Adlı Kullanıcıdan Alıntı: 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.
Cevapla
#5
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.
Cevapla
#6
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.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#7
Şöyle bir component var ama ücretli : http://www.tsilang.com/
Cevapla
#8
(26-03-2018, Saat: 15:33)mrmarman Adlı Kullanıcıdan Alıntı:
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.)
Cevapla
#9
İ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
Cevapla
#10
(26-03-2018, Saat: 21:44)canbir Adlı Kullanıcıdan Alıntı:
(26-03-2018, Saat: 15:33)mrmarman Adlı Kullanıcıdan Alıntı:
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
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  DbGrid içindeki tarih verisine 1 yıl eklemek neriamelih 2 718 25-12-2022, Saat: 17:54
Son Yorum: enigma
  Yazılıma geri dönmek istiyorum power 24 5.649 15-09-2022, Saat: 21:44
Son Yorum: power
  Windows SaveAsDialog özellik eklemek. dervis 0 385 28-05-2022, Saat: 08:58
Son Yorum: dervis
  DBGrid1 de Alta Boşluk Eklemek OZCANK 21 4.651 30-04-2022, Saat: 13:06
Son Yorum: OZCANK
  cindy Resizer alt controllerin çalışması istiyorum info@guzelceker.com 2 2.153 03-12-2019, Saat: 11:09
Son Yorum: info@guzelceker.com



Konuyu Okuyanlar: 1 Ziyaretçi