Bir yazılımın kullanıcı arayüzü kullanıcının işini yapmasını kolaylaştıracak şekide tasarlanmalıdır. Arayüzü oluşturan iletilerin kullanıcının tercih ettiği dilde olması da bu kolaylıklardan biridir.
İletilerin farklı dillerde gösterilmesi farklı yollarla gerçekleştirilebilir. Bunlardan biri tüm dilleri ve her iletinin bu dillerdeki çevirilerini yazılıma eklemektir. Bu pek de iyi bir çözüm değildir, çünkü dil kümesini genişletmek gerektiğinde işler zorlaşır (kodun değişmesi gerekir). Kodun kendisi ileti kümeleri arttıkça aşırı büyür.
Daha iyi bir çözüm ileti kümelerini her dil için ayrı dosyalarda tutmak, kullanıcının seçimine bağlı olarak yazılımın çalışması esnasında iletileri bu dosyalardan yüklemektir.
GNU C Kütüphanesi ileti çevirilerini destekleyen iki işlev ailesi içerir. Sorun bu amaca uygun bir arayüzün POSIX standardında resmen tanımlanmamış olmasıdır. catgets ailesi işlevler X/Open standardında tanımlanmış, ancak bu endüstriyel kararlarla oluşturulmuş ve bu bakımdan kabul edilebilir kararlara dayanması gerekmemiştir.
Yukarıda kısaca bahsedildiği gibi ileti çevirilerini içeren harici veri dosyaları kullanılarak ileti kataloglarının kolayca genişletilebilmesi sağlanmıştır. Yani, bu dosyalar yazılımdaki her ileti için ilgili olduğu dilde birer çeviri içerir. Bu yapıya göre ileti işleme işlevlerinin görevleri:
-
Uygun çevirileri içeren harici dosyayı bulmak.
-
Veriyi yüklemek ve çevirilerin adreslenebilmesini sağlamak.
-
Belirtilen bir anahtarı çevrilmiş iletiye eşlemek.
Son adımın gerçeklenmesi açısından iki yaklaşım farklı davranır. Kalan her şey için tasarım kararları bunun etkisinde verilmiştir.