Evet/Hayır Yanıtları
Önceki VII. Oylum - Yereller ve Uluslararasılaştırma Sonraki
Evet/Hayır Yanıtları
Grafiksel arayüzü olmayan bazı uygulamalarda evet ya da hayır olarak yanıtlanması gereken sorular olur. Eğer iletiler yabacı dillere çevriliyorsa, yanıtlarında yerelleştirilmesi gerekir. Soruyu bir dilde sorup, başka bir dilde (genellikle ingilizce) yanıt istemek tuhaf kaçar.
GNU C kütüphanesi uygulamaların ilgili yerel tanımına kolayca erişebilmesini mümkün kılan rpmatch işlevini içerir.
int rpmatch
(const char *yanıt)
işlev
rpmatch işlevi yanıt dizgesinde evet ya da hayır dizgelerinden birinin varlığını arar. Bu işlem seçili yerelin LC_MESSAGES kategorisindeki YESEXPR ve NOEXPR düzenli ifadeleri ile yanıt dizgesi karşılaştırılarak yapılır. İşlev şu değerlerden biri ile döner:
1
Kullanıcı olumlu yanıt verdi.
0
Kullanıcı olumsuz yanıt verdi.
-1
Yanıt ne YESEXPR ne de NOEXPR düzenli ifadesine uyuyor.
Bu işlev standartlaşmamıştır ama GNU C kütüphanesinde ve IBM AIX kütüphanesinde bulunmaktadır.
Bu işlev normalde şöyle kullanılabilir:
...
/* Öntanımlı bir değerimiz olsun.  */
_Bool doit = false;

fputs (gettext ("Do you really want to do this? "), stdout);
fflush (stdout);
/* getline çağrısını hazırlayalım.  */
line = NULL;
len = 0;
while (getline (&line, &len, stdout) >= 0)
  {
    /* Yanıta bakalım.  */
    int res = rpmatch (line);
    if (res >= 0)
      {
        /* Yanıt olumluysa.  */
        if (res > 0)
          doit = true;
        break;
      }
  }
/* Yanıtı aldığımız diziyi serbest bırakalım.  */
free (line);
Döngünün bir hata ya da olumlu veya olumsuz bir yanıt alınıncaya kadar sürdürüldüğüne dikkat edin.
Önceki Üst Ana Başlık Sonraki
Sayıların Biçimlenmesi Başlangıç VIII. Oylum - İleti Çevirileri
Bir Linux Kitaplığı Sayfası