İleti Kataloğu Dosyalarının Biçimi
Önceki X/Open İleti Kataloglarının İşlenmesi Sonraki
İleti Kataloğu Dosyalarının Biçimi
Bir yazılımın tüm iletilerinin çevrilmesinin kabul edilebilir tek yolu, iletileri bir ileti kataloğu dosyasında toplamak ve bunu çevirmenin çevirmesini sağlamaktır. Yani, belli bir çeviri ile set/ileti çiftini ilişkilendiren girdilerden oluşan bir dosyamız olmalıdır. Bu dosyanın biçimi X/Open standardında şöyle belirlenmiştir:
  • Boş satırlar ve sadece boşluk karakterleri içeren satırlar yoksayılır.
  • Satırın başında bir $ karakterinden sonra boşluk geldiğinde satırın kalanının bir açıklama içerdiği varsayılır ve bu satırlar da yoksayılır.
  • Satır $set ile başlıyorsa bunu bir boşluk karakteri ile bir argüman izlemelidir. Bu argüman şunlardan biri olabilir:
    • Bir sayı. Bu sayının değeri altındaki iletiler bir küme oluşturur.
    • Alfanümerik karakterlerle alt çizgi karakterinden oluşabilen bir belirteç. Bu durumda ileti kümesinin numarası özdevinimli olarak atanır. Bu değer o kümeye kadar belirtilenlerden büyük bir sayı olmalıdır.
      Sembolik isimlerin nasıl kullanıldığı catgets Kullanımı bölümünde açıklanmıştır.
      Bir sembol ismi birden fazla varsa bu bir hatadır. Bir kümenin içerdiği tüm iletiler bu numara altında toplanır.
  • Satır $delset ile başlıyorsa bunu bir boşluk karakteri ile bir argüman izlemelidir. Bu argüman şunlardan biri olabilir:
    • Bir sayı. Bu sayının değeri altındaki iletilerin oluşturduğu kümenin silineceğini belirtir.
    • Alfanümerik karakterlerle alt çizgi karakterinden oluşabilen bir belirteç. Bu sembolik belirteç evvelce tanımlanmış bir küme ismi olmalıdır. İsim bilinmiyorsa bu bir hatadır.
    Her iki durumda da belirtilen kümelerdeki tüm iletiler silinir ve çıktıda görünmezler. Fakat bu küme daha sonra tekrar $set komutu ile seçilerek içerdiği iletilerin tekrar çıktılanması sağlanabilir.
  • Satır $quote ile başlıyorsa bunu bir boşluk karakteri ile girdi dosyasında tırnak karakteri olarak kullanılacak karakter izlemelidir. Satır boşluktan farklı bir karakter ile bitmiyorsa dosyada tırnaklar iptal edilir.
    Öntanımlı olarak bir tırnak karakteri yoktur. Bu kipte dizgeler öncelenmemiş ilk satırsonu karakterinde biter. Eğer bir $quote belirtimi varsa satırsonu karakterlerinin öncelenmesi gerekmez. Bu durumda dizge öncelenmemiş ilk tırnak karakterinde biter.
    Bu özelliğin çok kullanılan bir kullanımı tırnak karakteri olarak " belirtmektir. Dizge içinde bir " karakteri kullanmak gerekirse \" şeklinde tırnak işareti tersbölü ile öncelenmelidir.
  • Bunların dışında satırlar bir sayı veya bir alfanümerik sözcük (alt çizgi dahil) ile başlayabilir. İlk boşluk karakterinden hemen sonra ileti dizgesi gelir. Satırın başındaki sözcük ya da sayı iletinin numarasını ifade eder.
    Eğer satır bir sayı ile başlıyorsa bu açıkça iletinin numarasıdır. İleti kümesi içinde aynı numaralı ileti birden fazla varsa bu bir hatadır.
    Eğer satır bir sözcük ile başlıyorsa ileti numarası özdevinimli olarak atanır. Değeri iletiyi içeren kümedeki en büyük numaralı iletinin numararasının bir fazlasıdır. Bir ileti kümesi içinde aynı sözcük birden fazla ileti için kullanılmışsa bu bir hatadır. Ama aynı sözcük başka bir küme içinde kullanılabilir. Sembolik belirteçlerin nasıl kullanıldığı catgets Kullanımı bölümünde anlatılmıştır. Belirteç ile ilgili bir sınırlama vardır: Bu, Set olmamalıdır. Bunun sebebi ilerde açıklanacaktır.
    İleti metni öncelenmiş karakterleri içerebilir. Bunlar ISO C dilinde tanınan karakterlerdir (\n, \t, \v, \b, \r, \f, \\ ve \nnn, burada nnn karakterin sekizlik kodudur).
Önemli
Set ve iletiler için sayılar yerine belirteçlerin belirtilebilmesi bir GNU oluşumudur. X/Open standardına sıkı sıkıya bağlı sistemlerde bu özellik yoktur. Bir ileti kataloğu dosyası örneği:
1
2
3
4
5
6
7
8
9
10
$ Bu bir açıklamadır.
$quote "

$set SetOne
1 Numarası 1 olan ileti.
two "   Kimliği \"two\" olan ileti, buna 2 değeri atanacaktır"

$set SetTwo
$ Önceki Set'in numarası 1 oldu, bununki 2 olacaktır.
4000 "Numaralar keyfidir, 1'den başlamaları gerekmez."
Bu küçük örnekte görünenler:
  • 1. ve 9. satır $ işaretinden sonra bir boşluk içerdiğinden birer açıklamadır.
  • Tırnak karakteri olarak " atanmıştır. Aksi takdirde ileti tırnak içine alınamayacağından two kimlikli iletinin başındaki boşluklar gösterilemeyecekti.
  • Numaralı iletilerle sembolik isimli iletilerin karışık kullanılması bir sorun oluşturmaz, numaralama özdevinimli olarak yapılacaktır.
Bu dosya biçimi çok kolay görünmesine rağmen bir çalışan yazılımda kullanmak için yeterli değildir. catopen işlevi dosyayı çözümlemeli ve sözdizimsel hataları en iyi şekilde elde etmelidir. Bu öyle kolay değildir ve işlem oldukça yavaştır. Bu bakımdan catgets işlevleri verinin daha bütünleşik ve kullanıma hazır bir dosya biçiminde olmasını umar. Bunun için ayrıntıları sonraki bölümde açıklanacak olan özel bir uygulama, gencat vardır.
Bu biçimdeki dosyalar insanlarca okunabilir değildir. Yazılımlar tarafından kolayca kullanılabilmeleri için ikilik biçimdedirler. Fakat biçimin bayt sıralaması dosyaların bulunduğu sisteme bağlıdır.
İkilik dosyanın biçimi hakkında ayrıntıya girmeyeceğiz, çünkü bu dosyalar daima gencat uygulaması tarafından oluşturulurlar. GNU C Kütüphanesinin kaynak kodunda gencat uygulamasının kaynak kodu da bulunduğundan, çok meraklıysanız, dosyanın biçimi hakkında fikir edinmek için kaynak kodunu inceleyebilirsiniz.
Önceki Üst Ana Başlık Sonraki
catgets İşlevleri Başlangıç İleti Kataloğu Dosyalarının Üretilmesi
Bir Linux Kitaplığı Sayfası