TsiLang Makaleler Makale

Makale, 17 Şubat 2019

Uygulamanızı çok dilli yapmanın, geliştirme çabalarını ve maliyetlerini en aza indirmenin yolu

Biri bunu zaten yaptıysa tekerleği neden yeniden icat edelim?

Pazarınızı genişletmek ve ürünü yabancı müşterilere satmak istiyorsanız yazılımın yerelleştirilmesi şarttır. RAD Studio, Delphi veya C++Builder ile çalışan geliştiriciler, uygulamalarına çok dilli destek eklemek için üç farklı yol seçebilir. Birincisi, bunu Resource DLL Wizard ile yapabilirsiniz. İkincisi, kendi aracınızı yazabilirsiniz. Ancak elle yapılan ve özel olan her şeyde olduğu gibi, kendi aracınızı yazmak size daha önemli işlere harcanabilecek zaman ve enerjiye mal olur. Geliştirme yaşam döngüsünü hızlandırmak istiyorsanız en iyi yol, TsiLang Components Suite gibi kullanıma hazır bir araç kullanmaktır. Kullanıcı dostu, kullanımı kolaydır ve iyi çalışacağı garantilidir. Nasılsa biri bunu zaten halletmişken ve insanlar bu tekerleğin kusursuz çalıştığını bilirken, neden tekerleği yeniden icat edelim?!

“It’s what can be called money well invested”

Dünyanın dört bir yanındaki müşteriler TsiLang Components Suite’i kullanıyor ve bu, yazılımlarını çok dilli yapmalarına şimdiden yardımcı oluyor. Steve Jordi bunlardan biri. İsviçre’deki TiltSoft’ta yazılım mühendisi olarak çalışıyor. Şirketi, dünyanın birçok ülkesindeki son kullanıcılara dağıtılan yanardağ izleme yazılımları geliştirmede uzmanlaşmış. TsiLang’a geçmeden önce şirket, uygulamalarını diğer ülkeler için yerelleştirmek üzere kullanımı kolay ama güçlü bir araç arayışındaydı. Basitlik ve fiyatın yanı sıra özel gereksinimlerinden biri, yazılımın son kullanıcıların uygulamayı kendi başlarına çevirmesine olanak tanımasıydı. Diğer bileşenlerin hiçbiri gereksinimlerini karşılayamadı.

“We investigated and tried a lot of solutions”, says Steve. “All of them described themselves as the best tool around. If we found TsiLang, it’s because none of the others were really the best tools and we kept searching. Only TsiLang had a dictionary, only TsiLang had that dispatcher mechanism that allows coding the language switch at one place only. Only TsiLang was able to translate DBGrid column headers, etc. With this software in place, we can localize our software in hours. This saves time and efforts, and helps us to be more focused on the development of the main project. We can recommend TsiLang Components Suite without a single hesitation. It’s what can be called money well invested.”

TsiLang Components Suite yerelleştirme sürecini iki dakikalık bir yolculuğa dönüştürür

TsiLang yazılımının kullanımının ne kadar kolay olduğunu hissettirmek için standart Delphi dağıtımında bulunan MDIAPP örneğini kullanmak istiyoruz.

7 adımda çok dilli bir uygulamaya geçelim!

  • RAD Studio, Delphi veya C++Builder’da MDIApp.dpr örnek projesini açın veya oluşturun.
  • Adım 1. IDE’den TsiLang Expert’i başlatın. Bunu Tools menüsünden yapabilirsiniz. Açılan TsiLang Expert penceresinde ana menü çubuğunu ve araç çubuğunu görebilirsiniz. Altta, projenin tüm formlarının listesini görebilirsiniz. Hepsini seçin.
TsiLang Expert
  • Adım 2. Expert’in komut paneli menüsünde File | Selected | Wizard öğesine tıklayın. Açılan sihirbazı başlatmak için Next düğmesine tıklayın.
  • Ana formu seçin ve sağdaki birleşik giriş kutusunda TsiLang türünü ayarlayın. Listedeki diğer tüm formlar için TsiLangLinked ayarlayın.
Translation Wizard. Step 1
  • Ayarları aşağıda gösterildiği gibi yapılandırın ve Next düğmesine tıklayın.
Translation Wizard. Step 2

Çevirileri yalnızca fare tıklamalarıyla girme

  • Adım 3. Wizard tamamlandığında proje formlarınız zaten neredeyse tamamen çok dillidir. Translation Editor’ü görüntülemek ve arayüz girdileri için çevirileri girmek üzere Expert’te herhangi bir forma çift tıklamanız yeterlidir. Bir girdinin çevrilmesini önlemek için diğer dil(ler) için değer(ler)i boş bırakabilir veya bu girdiyi hariç tutma listesine ekleyebilirsiniz.
Translation Editor
  • Diğer formlara yerleştirilmiş denetimlerin çevirilerini girmek için TsiLang Expert’te bu formlara çift tıklayın.

Koda gömülü dizeleri çevirme

  • Adım 4. Bir sonraki adımda kaynak dosyalarımızdaki tüm koda gömülü dizeleri çevireceğiz. “MainForm” üzerine tıklayın ve TsiLang Expert’in komut panelinde “File | Strings in Source| w/ form” komutunu seçin. Bu komut, biriminizin kaynak kodunda bulunan tüm koda gömülü dize sabitlerini gösteren formu açar. Bir sabitin çevrilmesini istemiyorsanız bu listeden silebilirsiniz. İlgili sabitin bulunduğu satırı seçin ve “Delete” düğmesine tıklayın.
Strings in source

Yukarıdaki resimde gördüğünüz gibi birinci sütun satır numarasını, ikinci sütun bu kaynak dize için kullanılacak dize kimliğini gösterir. Aynı dizeler için bu kimlik aynı olacaktır. Üçüncü sütun, dizenin kaynaktaki değerini içerir. Dördüncü sütun, bu koda gömülü dizenin yerine kaynak kodunuza yerleştirilecek metni gösterir. Burada istediğiniz değişiklikleri yapabilirsiniz ve bunlar değiştirme sırasında kullanılacaktır. Formun altında, dizenin bulunduğu kaynak kodun önizlemesini görebilirsiniz.

Modify Source düğmesine tıkladıktan sonra listelenen tüm koda gömülü dizeler TsiLang bileşeninin GetTextOrDefault() yöntemiyle değiştirilir. Bu yöntem, girdi dize kimliğine göre, arayüzün etkin diline uygun dize değerini veya çeviri yoksa ilk dilin değerini döndürür.

Dizelerin özgün değerleri TsiLang’ın “Strings” özelliğine yerleştirilir. Bunları Object Inspector’da bu özelliğe çift tıklayarak çevirebilirsiniz.

İnce ayar

  • Adım 5. Uygulamanızı gerçekten çok dilli yapmak için TSaveDialog, TOpenDialog, TFontDialog ve TPrintDialog bileşenlerini TsiSaveDialog, TsiOpenDialog, TsiFontDialog ve TsiPrintDialog ile değiştirmeniz gerekir. Bu bileşenler “SiDialogs” bileşen paleti sayfasında bulunur. “siLang” özelliğini ayarlayarak bunları TsiLang’a bağlayın. Object Inspector’da TsiLang’ın “DlgsCaptions” özelliğine çift tıklayarak Standard Dialogs Captions düzenleyicisini açın ve ortak iletişim kutusu dizeleri için çevirileri yazın.

Dil değiştirme kodu

  • Adım 6. Dil değiştirme kodunu eklemek için şu adımları izleyin:
    • Ana menünün üst düzeyine “Language” adlı yeni bir menü öğesi ekleyin.
    • “Language” menüsüne “English” ve “German” alt menü öğelerini ekleyin.
    • Bu öğeler için RadioItem özelliğini True yapın ve English öğesinin Checked özelliğini True yapın.
    • Tag özelliğini English öğesi için 1, German öğesi için 2 olarak ayarlayın.
    • Her iki öğe için OnClick olay işleyicisine şu kodu ekleyin:
procedure TMainForm.German1Click(Sender: TObject);
begin 
   siLangDispatcher1.ActiveLanguage := TComponent(Sender).Tag;
   TMenuItem(Sender).Checked := True;
end;

Adım 7. Projenizi derleyin ve çalıştırın. Uygulama çok dilli!

Uygulamanızın bir sonraki dili burada başlıyor

Çok dilli olmaya hazır mısınız?

Her özelliği kendi projenizle deneyin.

Tam işlevli deneme sürümü. Yerelleştirilmiş uygulamanız çalışırken IDE’nizi açık tutun.